Hello, Before filing a bug report, I wanted to run this by the group to make sure I'm not doing something dumb (it happens). We're seeing systemd-journald crash with:
Assertion 'n + 20 + (object_pid ? 11 : 0) <= m' failed at /build/amd64-usr/var/tmp/portage/sys-apps/systemd-218-r5/work/systemd-218/src/journal/journald-server.c:576, function dispatch_message_real(). Aborting. Shortly after this occurs, the container crashes. We cause this by creating journal entries with some very specific numbers of metadata fields. 22, 66, 154, 330 to be exact. Any other number of fields, no problem, no crash. Crazy, right? The examples at the bottom of this message reliably produce a crash. PLEASE let me know if I've missed something obvious, but as far as I can tell, this is a bug in systemd-journald. We've seen this exact failure mode with Erlang, Ruby, and Python. Environment details: - CoreOS version 607.0.0 - systemd version 218 - Docker container based on: phusion/baseimage:0.9.11 - Languages/APIs: Erlang (ejournald), Ruby (journald-native), Python (python-systemd) Easy one-liners to reproduce: ## Python $ apt-get update && apt-get -y install python-systemd && python << EOF from systemd import journal journal.sendv('MESSAGE=this will crash', 'SYSLOG_IDENTIFIER=foobar', 'SYSLOG_FACILITY=3', 'PRIORITY=5', 'KEY5=foobar', 'KEY6=foobar', 'KEY7=foobar', 'KEY8=foobar', 'KEY9=foobar', 'KEY10=foobar', 'KEY11=foobar', 'KEY12=foobar', 'KEY13=foobar', 'KEY14=foobar', 'KEY15=foobar', 'KEY16=foobar', 'KEY17=foobar', 'KEY18=foobar', 'KEY19=foobar', 'KEY20=foobar', 'KEY21=foobar', 'KEY22=foobar') EOF $ apt-get update && apt-get -y install python-systemd && python << EOF from systemd import journal journal.sendv('MESSAGE=this will crash', 'SYSLOG_IDENTIFIER=foobar', 'SYSLOG_FACILITY=3', 'PRIORITY=5', 'KEY5=foobar', 'KEY6=foobar', 'KEY7=foobar', 'KEY8=foobar', 'KEY9=foobar', 'KEY10=foobar', 'KEY11=foobar', 'KEY12=foobar', 'KEY13=foobar', 'KEY14=foobar', 'KEY15=foobar', 'KEY16=foobar', 'KEY17=foobar', 'KEY18=foobar', 'KEY19=foobar', 'KEY20=foobar', 'KEY21=foobar', 'KEY22=foobar', 'KEY23=foobar', 'KEY24=foobar', 'KEY25=foobar', 'KEY26=foobar', 'KEY27=foobar', 'KEY28=foobar', 'KEY29=foobar', 'KEY30=foobar', 'KEY31=foobar', 'KEY32=foobar', 'KEY33=foobar', 'KEY34=foobar', 'KEY35=foobar', 'KEY36=foobar', 'KEY37=foobar', 'KEY38=foobar', 'KEY39=foobar', 'KEY40=foobar', 'KEY41=foobar', 'KEY42=foobar', 'KEY43=foobar', 'KEY44=foobar', 'KEY45=foobar', 'KEY46=foobar', 'KEY47=foobar', 'KEY48=foobar', 'KEY49=foobar', 'KEY50=foobar', 'KEY51=foobar', 'KEY52=foobar', 'KEY53=foobar', 'KEY54=foobar', 'KEY55=foobar', 'KEY56=foobar', 'KEY57=foobar', 'KEY58=foobar', 'KEY59=foobar', 'KEY60=foobar', 'KEY61=foobar', 'KEY62=foobar', 'KEY63=foobar', 'KEY64=foobar', 'KEY65=foobar', 'KEY66=foobar') EOF ## Ruby $ apt-get update && apt-get -y install make libsystemd-journal-dev ruby ruby-dev && gem install journald-native && ruby << EOF require 'journald/native' Journald::Native.send "MESSAGE=this will crash", "SYSLOG_IDENTIFIER=foobar", "SYSLOG_FACILITY=3", "PRIORITY=5", "KEY5=foobar", "KEY6=foobar", "KEY7=foobar", "KEY8=foobar", "KEY9=foobar", "KEY10=foobar", "KEY11=foobar", "KEY12=foobar", "KEY13=foobar", "KEY14=foobar", "KEY15=foobar", "KEY16=foobar", "KEY17=foobar", "KEY18=foobar", "KEY19=foobar", "KEY20=foobar", "KEY21=foobar", "KEY22=foobar" EOF $ apt-get update && apt-get -y install make libsystemd-journal-dev ruby ruby-dev && gem install journald-native && ruby << EOF require 'journald/native' Journald::Native.send "MESSAGE=this will crash", "SYSLOG_IDENTIFIER=foobar", "SYSLOG_FACILITY=3", "PRIORITY=5", "KEY5=foobar", "KEY6=foobar", "KEY7=foobar", "KEY8=foobar", "KEY9=foobar", "KEY10=foobar", "KEY11=foobar", "KEY12=foobar", "KEY13=foobar", "KEY14=foobar", "KEY15=foobar", "KEY16=foobar", "KEY17=foobar", "KEY18=foobar", "KEY19=foobar", "KEY20=foobar", "KEY21=foobar", "KEY22=foobar", "KEY23=foobar", "KEY24=foobar", "KEY25=foobar", "KEY26=foobar", "KEY27=foobar", "KEY28=foobar", "KEY29=foobar", "KEY30=foobar", "KEY31=foobar", "KEY32=foobar", "KEY33=foobar", "KEY34=foobar", "KEY35=foobar", "KEY36=foobar", "KEY37=foobar", "KEY38=foobar", "KEY39=foobar", "KEY40=foobar", "KEY41=foobar", "KEY42=foobar", "KEY43=foobar", "KEY44=foobar", "KEY45=foobar", "KEY46=foobar", "KEY47=foobar", "KEY48=foobar", "KEY49=foobar", "KEY50=foobar", "KEY51=foobar", "KEY52=foobar", "KEY53=foobar", "KEY54=foobar", "KEY55=foobar", "KEY56=foobar", "KEY57=foobar", "KEY58=foobar", "KEY59=foobar", "KEY60=foobar", "KEY61=foobar", "KEY62=foobar", "KEY63=foobar", "KEY64=foobar", "KEY65=foobar", "KEY66=foobar" EOF Thanks in advance! Dan Checkoway
_______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel