Bug 4350 - smbd infinite loop on startup
Summary: smbd infinite loop on startup
Status: RESOLVED INVALID
Alias: None
Product: Samba 3.0
Classification: Unclassified
Component: File Services (show other bugs)
Version: 3.0.23d
Hardware: x86 Linux
: P3 major
Target Milestone: none
Assignee: Samba Bugzilla Account
QA Contact: Samba QA Contact
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-01-24 18:03 UTC by Jan Engelhardt
Modified: 2007-04-09 03:57 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Engelhardt 2007-01-24 18:03:40 UTC
Using openSUSE 10.2's smbd. When mountd is bound to 631/tcp, smbd enters an infinite loop trying to connect to the cups port. I agree that mountd should not be on 631, but that's how portmap works - it randomly assigns it a port.

To reproduce:
Put mountd on 631/tcp, using perhaps a REDIRECT iptables rule in -t nat -A OUTPUT.

strace excerpt:
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 4
setsockopt(4, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(4, SOL_TCP, TCP_NODELAY, [1], 4) = 0
fcntl64(4, F_SETFD, FD_CLOEXEC)         = 0
connect(4, {sa_family=AF_INET, sin_port=htons(631), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
time(NULL)                              = 1169683264
time(NULL)                              = 1169683264
time(NULL)                              = 1169683264
time(NULL)                              = 1169683264
time(NULL)                              = 1169683264
time(NULL)                              = 1169683264
time(NULL)                              = 1169683264
send(4, "POST / HTTP/1.1\r\nContent-Length:"..., 134, 0) = 134
time(NULL)                              = 1169683264
time(NULL)                              = 1169683264
time(NULL)                              = 1169683264
time(NULL)                              = 1169683264
time(NULL)                              = 1169683264
send(4, "\1\1@\2\0\0\0\1\1G\0\22attributes-charset\0\5"..., 129, 0) = 129
select(5, [4], NULL, NULL, {1, 0})      = 1 (in [4], left {1, 0})
recv(4, "", 2048, 0)                    = 0
close(4)                                = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 4
...
Comment 1 Volker Lendecke 2007-04-09 03:57:18 UTC
This is a CUPS bug, not ours. If the CUPS libs don't figure out it's not cupsd who is listening, how should we?

And, if you're not running cups you should use 'printing = bsd' or whatever system you are using.

Volker