Hi,

I'm getting a segfault too, rendering dbus useless. Any time a client
connects to it, it segfaults. I didn't manage to get a core dump even
when starting it myself with 'ulimit -c unlimited'.
However I've got some info. When I run the command 
 DBUS_VERBOSE=1 dbus-daemon-1 --system --nofork
I get this output:

9151: Allocated slot 0 on allocator 0x8090628 total 1 slots allocated 1 used
9151: No cache for UID 0
9151: No cache for UID 4294967295
9151: Using cache for UID 4294967295 information
9151: listening on unix socket /var/run/dbus/system_bus_socket abstract=0
9151: Initialized server on address unix:path=/var/run/dbus/system_bus_socket
9151: Adding a read watch on fd 3 using newly-set add watch function
9151: Allocated slot 0 on allocator 0x80905dc total 1 slots allocated 1 used
9151: No cache for UID 4294967295
9151: full-duplex pipe 4 <-> 5
9151: We are on D-Bus...
9151: Running main loop, depth 0 -> 1

Then it waits, and if I try a connection to it by calling hal-device-manager
it goes on like this:

9151: Handling client connection, flags 0x1
9151: Creating new client connection with fd 6
9151: check_read_watch: fd = 6
9151:   setting read watch enabled = 1
9151: check_write_watch(): needed = 0 on connection 0x809bab0 watch 0x809be00 
fd = 6 outgoing messages exist 0
9151: Adding a write watch on fd 6 using newly-set add watch function
9151: Adding a read watch on fd 6 using newly-set add watch function
9151: dispatch status = complete is_connected = 1
9151: Connection 0x809bab0 authentication expires in 29999 milliseconds
9151: Enabled expire timeout with interval 29999
9151: Running expire_incomplete_timeout
9151: Connection 0x809bab0 authentication expires in 29999 milliseconds
9151: Enabled expire timeout with interval 29999
9151: handling read watch 0x80942e8 flags = 1
9151: read credentials byte
9151: Credentials:  pid 9195  uid 1000  gid 1000
9151:  server auth state: waiting for input
9151: check_read_watch: fd = 6
9151:   setting read watch enabled = 1
9151: check_write_watch(): needed = 0 on connection 0x809bab0 watch 0x809be00 
fd = 6 outgoing messages exist 0
9151: do_reading: fd = 6
9151: dispatch status = complete is_connected = 1
9151: handling read watch 0x80942e8 flags = 1
9151:  server auth state: waiting for input
9151:  read 24 bytes in auth phase
9151: server: got command "AUTH EXTERNAL 31303030"
9151: server: Trying mechanism EXTERNAL
9151: server: data: '1000'
9151: server: going from state WaitingForAuth to state WaitingForBegin
9151: server: authenticated client with UID 1000 matching socket credentials 
UID 1000
9151:  server auth state: bytes to send
9151: check_read_watch: fd = 6
9151:   setting read watch enabled = 0
9151: check_write_watch(): needed = 1 on connection 0x809bab0 watch 0x809be00 
fd = 6 outgoing messages exist 0
9151: do_reading: fd = 6
9151: dispatch status = complete is_connected = 1
9151: handling write watch, have_outgoing_messages = 0
9151:  server auth state: bytes to send
9151: server: Sent 4 bytes of: OK

9151:  server auth state: waiting for input
9151: check_read_watch: fd = 6
9151:   setting read watch enabled = 1
9151: check_write_watch(): needed = 0 on connection 0x809bab0 watch 0x809be00 
fd = 6 outgoing messages exist 0
9151: Not authenticated, not writing anything
9151: check_write_watch(): needed = 0 on connection 0x809bab0 watch 0x809be00 
fd = 6 outgoing messages exist 0
9151: dispatch status = complete is_connected = 1
9151: handling read watch 0x80942e8 flags = 1
9151:  server auth state: waiting for input
9151:  read 7 bytes in auth phase
9151: server: got command "BEGIN"
9151: server: going from state WaitingForBegin to state Authenticated
9151: No cache for UID 1000
Segmentation fault

And there it dies.
If I try an strace around it, I get some calls to NIS (my system is a yp 
client) that fail like:

socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 8
bind(8, {sa_family=AF_INET, sin_port=htons(918), 
sin_addr=inet_addr("0.0.0.0")}, 16) = -1 EACCES (Permission denied)
connect(8, {sa_family=AF_INET, sin_port=htons(893), 
sin_addr=inet_addr("192.168.14.1")}, 16) = 0
write(8, "\200\0\0LIw\366\200\0\0\0\0\0\0\0\2\0\1\206\244\0\0\0\2"..., 80) = 80
poll([{fd=8, events=POLLIN, revents=POLLIN}], 1, 25000) = 1
read(8, "\200\0\10\\Iw\366\200\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4000) = 
2144
close(8)                                = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

Somehow I'm not sure why it would bind a socket locally before connecting 
it to the NIS server, but I'm not sure whether this is wrong or even related
to the segfault.

I'm running the latest debian unstable with dbus 0.23.

Please tell me if I should report this upstream or how to get more info 
from my breakage, it's very frustrating.

Thanks.
-- 
Stéphane Epardaud


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to