Hello, Running the test suite for glib2.0 one test: gio/tests/socket, sub-test: /socket/unix-connection-ancillary-data fails for unknown reasons The ancillary data sent is using SCM_RIGHTS (not SCM_CREDS). The latest libc-2.17-92, hurd-20130727 and glib2.0-2.36.4-1, are installed.
The test errors out with err = EKERN_INVALID_ADDRESS after calling sendmsg.c:__io_restrict_auth(), code below: for (i = 0; i < nfds; i++) { err = HURD_DPORT_USE (fds[i], ({ err = __io_restrict_auth (port, &ports[nports], 0, 0, 0, 0); if (! err) nports++; /* We pass the flags in the control data. */ fds[i] = descriptor->flags; })); if (err) goto out; } Is there any reason for this error message to fail that test? (setting err to zero and rebuilding libc.so makes this, and other, test pass) ./lt-socket /socket/unix-connection-ancillary-data: ** GLib-GIO:ERROR:/home/srs/DEBs/glib2.0/glib2.0-2.36.4/./gio/tests/socket.c:802:test_unix_connection_ancillary_data: assertion failed (err == NULL): Error sending message: (os/kern) invalid address (g-io-error-quark, 0) Aborted srs@hurd-20120221:~/DEBs/dbus$ ** GLib-GIO:ERROR:/home/srs/DEBs/glib2.0/glib2.0-2.36.4/./gio/tests/socket.c:783:test_unix_connection_ancillary_data: assertion failed (fd > -1): (-1 > -1) ^C I'm attaching the built test program, not stripped, it's only 25k. Another puzzling thing is how to find out which version is used for which situation? For *_io_restrict_auth() there are plenty to choose from: grep -r _io_restrict_auth ../../hurd/hurd-20130727/ pfinet/io-ops.c:S_io_restrict_auth pflocal/io.c:S_io_restrict_auth boot/boot.c:S_io_restrict_auth libdiskfs/io-restrict-auth.c:diskfs_S_io_restrict_auth libnetfs/io-restrict-auth.c:netfs_S_io_restrict_auth libtreefs/s-io.c:treefs_S_io_restrict_auth libtreefs/s-io.c: return treefs_s_io_restrict_auth libtrivfs/io-restrict-auth.c:trivfs_S_io_restrict_auth And the hooks, macros? libtreefs/treefs-s-hooks.h:DHH(s_io_restrict_auth, error_t, libtreefs/treefs-s-hooks.h:#define treefs_s_io_restrict_auth(h, args...) \ libtreefs/treefs-s-hooks.h: _TREEFS_CHH(h, S_IO_RESTRICT_AUTH, s_io_restrict_auth , ##args) Thanks, Svante
lt-socket
Description: application/executable