Comments (8)
The test-driver
suite runs a dummy launcher in a separate thread, controlling an independent dbus-broker instance. The assertion in question tells us the launcher thread finished with a non-zero error code. Furthermore, it tells us no assertion in the thread fired. Hence, it must have completed, and as such its return-code is taken from the sd-event exit-code. The only place that sets a non-zero exit-code is util_event_sigchld(), which just takes the exit-code of the broker.
In summary, the dbus-broker instance exited and returned non-zero (either explicitly or via a terminal signal).
The reasons for this is not clear from the logs. If dbus-broker segfaulted, there should be a hint in the system logs, though the report does not include the system logs (at least I didn't find them). And if the broker returned non-zero itself, it must have either printed something to the system log, or to stderr.
Is there a way to get access to the journal entries? Or, if no journal is around, then dmesg
and/or syslog?
from dbus-broker.
from the host syslogs
zgrep dbus-broker /var/log/*
/var/log/debug:Dec 12 10:19:19 mr-fox kernel: traps: dbus-broker[13439] general protection ip:56470655120c sp:7ffcc545d930 error:0 in dbus-broker[564706541000+2c000]
/var/log/kern.log:Dec 12 10:19:19 mr-fox kernel: [151499.624964] traps: dbus-broker[13439] general protection ip:56470655120c sp:7ffcc545d930 error:0 in dbus-broker[564706541000+2c000]
/var/log/messages:Dec 12 10:19:19 mr-fox kernel: traps: dbus-broker[13439] general protection ip:56470655120c sp:7ffcc545d930 error:0 in dbus-broker[564706541000+2c000]
/var/log/syslog:Dec 12 10:19:19 mr-fox kernel: traps: dbus-broker[13439] general protection ip:56470655120c sp:7ffcc545d930 error:0 in dbus-broker[564706541000+2c000]
from dbus-broker.
Oddly, I am seeing similar messages in the kernel log, despite the test passing.
I rebuilt with debug symbols and systemd captured a core dump.
Core was generated by `./src/dbus-broker --verbose --controller 23'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00005596e9ea51f7 in peer_flush_matches (peer=0x5596ea9403e0) at ../dbus-broker-9/src/bus/peer.c:523
523 if (rule->keys.sender && *rule->keys.sender != ':' && strcmp(rule->keys.sender, "org.freedesktop.DBus") != 0)
(gdb) bt full
#0 0x00005596e9ea51f7 in peer_flush_matches (peer=0x5596ea9403e0) at ../dbus-broker-9/src/bus/peer.c:523
name = 0x0
rule = 0x5596ea93f060
node = 0x5596ea93f088
#1 0x00005596e9e9e32a in driver_goodbye (peer=0x5596ea9403e0, silent=false) at ../dbus-broker-9/src/bus/driver.c:1732
reply = 0x5596e9eadb15 <c_list_is_empty+31>
reply_safe = 0x0
rule = 0x7fff67ddd780
rule_safe = 0x5596e9eae68d <socket_discard_input+47>
ownership = 0x5596e9eae9e8 <socket_hangup_input+59>
ownership_safe = 0x5596ea940490
r = 1742591840
__func__ = "driver_goodbye"
#2 0x00005596e9ea3b06 in peer_dispatch (file=0x5596ea940d90) at ../dbus-broker-9/src/bus/peer.c:117
peer = 0x5596ea9403e0
interest = {17, 4}
i = 0
r = 4
__func__ = "peer_dispatch"
#3 0x00005596e9eb0c20 in dispatch_context_dispatch (ctx=0x5596ea93d370) at ../dbus-broker-9/src/util/dispatch.c:344
todo = {next = 0x7fff67ddd850, prev = 0x7fff67ddd850}
file = 0x5596ea940d90
r = 0
__func__ = "dispatch_context_dispatch"
__PRETTY_FUNCTION__ = "dispatch_context_dispatch"
#4 0x00005596e9e9182d in broker_run (broker=0x5596ea93d260) at ../dbus-broker-9/src/broker/broker.c:162
signew = {__val = {16386, 0 <repeats 15 times>}}
sigold = {__val = {66048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 7683565942679753216, 0, 94106657819104, 140734935980800, 0}}
r = 0
__func__ = "broker_run"
#5 0x00005596e9e96ab9 in run () at ../dbus-broker-9/src/broker/main.c:250
broker = 0x5596ea93d260
r = 0
__func__ = "run"
#6 0x00005596e9e96bf9 in main (argc=4, argv=0x7fff67dddb08) at ../dbus-broker-9/src/broker/main.c:272
r = 0
__func__ = "main"
from dbus-broker.
Right. The runtime-tests do not correctly capture failures if they happen after the tests succeeded (i.e., when we take down the test-daemon). As it turns out, there is a reference-leak in dbus-broker regarding monitor-matches. Hence, the broker faults, but the tests don't fail.
I found the culprit in a recent c-rbtree change (which disallows moving trees by hand). I am working on a fix.
However, I somehow suspect that this is not related to the initial bug-report. I guess we will see once I pushed the fix.
Thanks a lot!
from dbus-broker.
I pushed a fix to -master just now. This resolves all issues that I can reproduce locally.
However, this still does not explain the original bug to me. Is there any chance to get a backtrace?
from dbus-broker.
With latest master, I am no longer seeing those general protection errors.
@toralf - could you test sys-apps/dbus-broker-9999 on that tinderbox image? If you still get a test failure, it would be helpful if you could get a backtrace from the core dump.
from dbus-broker.
OK: 34
FAIL: 0
SKIP: 1
TIMEOUT: 0
:-)
from dbus-broker.
Thanks for the confirmation!
from dbus-broker.
Related Issues (20)
- Can't locate expat HOT 2
- Wiki page minor correction HOT 2
- RFE: add destination/unit name to error messages HOT 5
- Error when enabling the service on Arch Linux HOT 4
- Invalid file in 'includedir' causes entire launch to fail HOT 4
- Integer overflow due to u64->u32 when passing the "limits" around (most likely happen to `max_bytes`) HOT 3
- dbus-broker-units has made Light Display Manager (lightdm) unable to start HOT 19
- With dbus-broker-units, the KDE (plasma) can't be loaded HOT 5
- Several Errors from dbus-broker-launch on linux boot | org.kde.dolphin.FileManager1.service' is not named after the D-Bus name 'org.freedesktop.FileManager1' HOT 6
- Running dbus-broker-launch without systemd (the reprise) HOT 6
- The default position of critical infrastructure cannot be complete system failure HOT 6
- Do not hard fail on a failed config parse in a manner which prevents the user from fixing it HOT 2
- How to replace dbus-broker as session bus? HOT 4
- dbus-broker uses an extremely high amount of memory HOT 2
- Error starting dbus-broker-launch HOT 5
- What are the field definitions for org.freedesktop.DBus.Debug.Status.UserAccounting HOT 2
- Test 48/49 libcstdaux-1failure with Clang HOT 1
- There seems to be a memory leak in policy_import
- RFE: improve dbus-broker's logging HOT 5
- Be able to set the servicedirs precedence HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dbus-broker.