rsyslog stuck in 'spawned': Error in `rsyslogd': malloc(): memory corruption: 0x00000000007b2930
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
rsyslog (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Raring |
In Progress
|
Critical
|
Unassigned |
Bug Description
On some physical hardware systems running raring, we're seeing cloud-config not run occasionally.
After debugging, it seems the issue is that rsyslog is not starting.
$ sudo status rsyslog
rsyslog start/spawned, process 1656
Note, its spawned, not 'running'.
$ sudo cat /var/log/
Skipping profile in /etc/apparmor.
*** Error in `rsyslogd': malloc(): memory corruption: 0x00000000007b2930 ***
ProblemType: Bug
DistroRelease: Ubuntu 13.04
Package: rsyslog 5.8.11-2ubuntu2.1
ProcVersionSign
Uname: Linux 3.8.0-23-generic x86_64
ApportVersion: 2.9.2-0ubuntu8.1
Architecture: amd64
Date: Wed Jun 5 13:44:50 2013
MarkForUpload: True
ProcEnviron:
LANGUAGE=en_US:
TERM=xterm
PATH=(custom, no user)
LANG=en_US.UTF-8
SHELL=/bin/bash
SourcePackage: rsyslog
UpgradeStatus: No upgrade log present (probably fresh install)
Changed in rsyslog (Ubuntu Raring): | |
status: | New → In Progress |
importance: | Undecided → Critical |
Changed in rsyslog (Ubuntu): | |
status: | New → Invalid |
The process somehow gets wedged in libc's malloc error handler. gdb probably isn't going to pinpoint the source of the corruption. valgrind instead shows:
# valgrind rsyslogd -c5 valgrind/ vgpreload_ memcheck- amd64-linux. so)
==5249== Memcheck, a memory error detector
==5249== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==5249== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==5249== Command: rsyslogd -c5
==5249==
==5249== Invalid write of size 1
==5249== at 0x557BA89: __vsprintf_chk (vsprintf_chk.c:86)
==5249== by 0x557B9CC: __sprintf_chk (sprintf_chk.c:32)
==5249== by 0x40A981: queryLocalHostname (stdio2.h:33)
==5249== by 0x40D11E: realMain (syslogd.c:2761)
==5249== by 0x548DEA4: (below main) (libc-start.c:260)
==5249== Address 0x58423b8 is 0 bytes after a block of size 24 alloc'd
==5249== at 0x4C2CD7B: malloc (in /usr/lib/
==5249== by 0x40A956: queryLocalHostname (syslogd.c:2423)
==5249== by 0x40D11E: realMain (syslogd.c:2761)
==5249== by 0x548DEA4: (below main) (libc-start.c:260)
==5249==
<snip>