Re: DBus on "other" platforms
René J.V. Bertin <[email protected]>
| Newsgroups | gmane.comp.freedesktop.dbus |
|---|---|
| Message-ID | <[email protected]> |
On Monday May 16 2016 12:23:23 Simon McVittie wrote:
> That's not what I asked you to do. Please run it with the --tap option
My bad, I missed that somehow.
> not the one you just compiled; similarly, it'll use your normal
> (installed) session.conf, not a local one that hopefully only has
> EXTERNAL enabled. If you are testing a special local compile of dbus you
Yes, I wondered about that!
So test/data/valid-config-files/session.conf should by definition be configured correctly, with EXTERNAL enabled?
From the looks of it that's not the case, and there are also include directives that fetch things from /opt/local/etc/dbus-1 (i.e. the "normal" install location). That global session.conf appears to be empty, though; there's nothing in session.d .
>
> DBUS_TEST_DAEMON=$(pwd)/bus/dbus-daemon \
> DBUS_TEST_DATA=$(pwd)/test/data \
> test/test-dbus-daemon --tap
That results in
# random seed: R02Sb0a7bf037780925e97e26c652b3a9dc7
1..8
# UnixUserID of this process is 505
ok 1 /creds
**
ERROR:dbus-daemon.c:548:test_processid: assertion failed (error.name == DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN): ("org.freedesktop.DBus.Error.InvalidArgs" == "org.freedesktop.DBus.Error.UnixProcessIdUnknown")
# ERROR:dbus-daemon.c:548:test_processid: assertion failed (error.name == DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN): ("org.freedesktop.DBus.Error.InvalidArgs" == "org.freedesktop.DBus.Error.UnixProcessIdUnknown")
Abort
Exit 134
> or perhaps more simply
>
> make -C test check-TESTS TESTS=test-dbus-daemon VERBOSE=1
And this in
PASS: test-dbus-daemon 1 /creds
ERROR: test-dbus-daemon - too few tests run (expected 8, got 1)
ERROR: test-dbus-daemon - exited with status 134 (terminated by signal 6?)
======================================
dbus 1.10.8: test/test-suite.log
======================================
# TOTAL: 3
# PASS: 1
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 2
.. contents:: :depth: 2
ERROR: test-dbus-daemon
=======================
# random seed: R02Sf06c05621c301026bce0b14eaee134fa
1..8
# UnixUserID of this process is 505
**
ERROR:dbus-daemon.c:548:test_processid: assertion failed (error.name == DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN): ("org.freedesktop.DBus.Error.InvalidArgs" == "org.freedesktop.DBus.Error.UnixProcessIdUnknown")
ok 1 /creds
PASS: test-dbus-daemon 1 /creds
../build-aux/tap-driver.sh: line 639: 30871 Abort trap: 6 "$@"
# ERROR:dbus-daemon.c:548:test_processid: assertion failed (error.name == DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN): ("org.freedesktop.DBus.Error.InvalidArgs" == "org.freedesktop.DBus.Error.UnixProcessIdUnknown")
ERROR: test-dbus-daemon - too few tests run (expected 8, got 1)
ERROR: test-dbus-daemon - exited with status 134 (terminated by signal 6?)
============================================================================
Testsuite summary for dbus 1.10.8
============================================================================
# TOTAL: 3
# PASS: 1
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 2
============================================================================
See test/test-suite.log
Please report to https://bugs.freedesktop.org/enter_bug.cgi?product=dbus
============================================================================
make[1]: *** [test-suite.log] Error 1
make: *** [check-TESTS] Error 2
> > /processid: **
> > ERROR:dbus-daemon.c:548:test_processid: assertion failed (error.name == DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN): ("org.freedesktop.DBus.Error.InvalidArgs" == "org.freedesktop.DBus.Error.UnixProcessIdUnknown")
> > Abort
> > Exit 134
OK.
> This is getting more in-depth. Could you open a bug report on
> <https://bugs.freedesktop.org/enter_bug.cgi?product=dbus&component=core>
> for this part, please?
OK. Later tonight or else tomorrow.
>
> Editing test/dbus-daemon.c to include something like
>
> g_printerr ("%s: %s\n", error.name, error.message);
Prints
org.freedesktop.DBus.Error.InvalidArgs: Argument 0 is specified to be of type "uint32", but is actually of type "string"
maybe that already gives you an idea, together with that attached session.conf .
R.
_______________________________________________
dbus mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dbus
session.conf
(text/html, 3.5 KB)
<!-- This configuration file controls the per-user-login-session message bus.
Add a session-local.conf and edit that rather than changing this
file directly. -->
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<!-- Our well-known bus type, don't change this -->
<type>session</type>
<!-- If we fork, keep the user's original umask to avoid affecting
the behavior of child processes. -->
<keep_umask/>
<listen>launchd:env=DBUS_LAUNCHD_SESSION_BUS_SOCKET</listen>
<!-- On Unix systems, the most secure authentication mechanism is
EXTERNAL, which uses credential-passing over Unix sockets.
This authentication mechanism is not available on Windows,
is not suitable for use with the tcp: or nonce-tcp: transports,
and will not work on obscure flavours of Unix that do not have
a supported credentials-passing mechanism. On those platforms/transports,
comment out the <auth> element to allow fallback to DBUS_COOKIE_SHA1. -->
<!--<auth>EXTERNAL</auth>-->
<standard_session_servicedirs />
<policy context="default">
<!-- Allow everything to be sent -->
<allow send_destination="*" eavesdrop="true"/>
<!-- Allow everything to be received -->
<allow eavesdrop="true"/>
<!-- Allow anyone to own anything -->
<allow own="*"/>
</policy>
<!-- Include legacy configuration location -->
<include ignore_missing="yes">/opt/local/etc/dbus-1/session.conf</include>
<!-- Config files are placed here that among other things,
further restrict the above policy for specific services. -->
<includedir>session.d</includedir>
<includedir>/opt/local/etc/dbus-1/session.d</includedir>
<!-- This is included last so local configuration can override what's
in this standard file -->
<include ignore_missing="yes">/opt/local/etc/dbus-1/session-local.conf</include>
<include if_selinux_enabled="yes" selinux_root_relative="yes">contexts/dbus_contexts</include>
<!-- For the session bus, override the default relatively-low limits
with essentially infinite limits, since the bus is just running
as the user anyway, using up bus resources is not something we need
to worry about. In some cases, we do set the limits lower than
"all available memory" if exceeding the limit is almost certainly a bug,
having the bus enforce a limit is nicer than a huge memory leak. But the
intent is that these limits should never be hit. -->
<!-- the memory limits are 1G instead of say 4G because they can't exceed 32-bit signed int max -->
<limit name="max_incoming_bytes">1000000000</limit>
<limit name="max_incoming_unix_fds">250000000</limit>
<limit name="max_outgoing_bytes">1000000000</limit>
<limit name="max_outgoing_unix_fds">250000000</limit>
<limit name="max_message_size">1000000000</limit>
<!-- We do not override max_message_unix_fds here since the in-kernel
limit is also relatively low -->
<limit name="service_start_timeout">120000</limit>
<limit name="auth_timeout">240000</limit>
<limit name="pending_fd_timeout">150000</limit>
<limit name="max_completed_connections">100000</limit>
<limit name="max_incomplete_connections">10000</limit>
<limit name="max_connections_per_user">100000</limit>
<limit name="max_pending_service_starts">10000</limit>
<limit name="max_names_per_connection">50000</limit>
<limit name="max_match_rules_per_connection">50000</limit>
<limit name="max_replies_per_connection">50000</limit>
</busconfig>