bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

glib2.0 test gio/tests/socket fails, BUG?


From: Svante Signell
Subject: glib2.0 test gio/tests/socket fails, BUG?
Date: Fri, 13 Sep 2013 00:01:20 +0200

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



Attachment: lt-socket
Description: application/executable


reply via email to

[Prev in Thread] Current Thread [Next in Thread]