-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
broker segfault during t0015-cron.t failures on arm7l #1176
Comments
Does valgrind work on arm7l? |
Good question. It's available and packaged but it seems to spew a lot of nonsense when driven by our sharness test, culminating in an illegal instruction and leaving a "vgcore" in the trash directory.
|
Many of these are printed, for example
|
I was thinking just replace I'd do this myself but don't have access to arm7l system just now... |
another idea might be just to see if we could reproduce the crash with interactive commands. If so, then start a single broker session and attach to I tried running under valgrind and poking at some cron tests, but no errors yet. |
Oh sorry I misread your initial statement about valgrind. Ignore what I said above... |
I've been unsuccessful trying to reproduce this running cron commands interactively. I'll maybe look at this again tonight - heading in very late now! On the one hand, I don't want to waste our time running down problems on a "toy" platform (especially if they are merely test issues). On the other hand, sometimes the altered timing uncovers real bugs that might pop up, say, on a busy compute node, so... Wanted to at least capture this one for now. |
Ran again and got some backtrace from the core file this time:
|
Hmm, possibly due to uint64_t's being packed as "i". This seems to fix it diff --git a/src/modules/cron/cron.c b/src/modules/cron/cron.c
index 7eb516e..862c42d 100644
--- a/src/modules/cron/cron.c
+++ b/src/modules/cron/cron.c
@@ -605,7 +605,7 @@ error:
static json_t *cron_stats_to_json (struct cron_stats *stats)
{
- return json_pack ("{ s:f, s:f, s:f, s:i, s:i, s:i, s:i, s:i, s:i }",
+ return json_pack ("{ s:f, s:f, s:f, s:I, s:I, s:I, s:I, s:I, s:I }",
"ctime", stats->ctime,
"starttime", stats->starttime,
"lastrun", stats->lastrun, |
Nice find. Sorry! |
Problem: cron module segfaults during travis testing on arm7l. Change a json_pack() format string to use "I" not "i" to refer to uint64_t values. Fixes flux-framework#1176
On arm7l, the t0015-cron.t test fails all subtests after the first test (reproducably).
A core is generated that indicates there was a SIGSEGV but the stack is always corrupt it seems.
Test output
Last few lines of t0015-cron.broker.log
The text was updated successfully, but these errors were encountered: