From: Doug Brunner <dbrunner@ebus.com>
To: xenomai@xenomai.org
Subject: [Xenomai] Queue corruption from XDDP in Xenomai 2.6.1
Date: Wed, 05 Sep 2012 22:53:13 -0700 [thread overview]
Message-ID: <50483A49.5090100@ebus.com> (raw)
It looks like the bug I wrote about back in June still exists in Xenomai
2.6.1 (with Linux 3.2.21). I ran the same test case (an RT thread opens
an XDDP socket, then a Linux thread opens its end of the pipe, then the
RT thread stops, then with the Linux thread still holding its end of the
pipe another RT thread tries to open an XDDP socket with the same minor
number). With Xenomai queue and I-pipe debugging enabled, I got a report
of a corrupted queue. I've attached my config, test case, and serial
console log.
So far I haven't found anything in the XDDP or underlying xnpipe_* code
that would suggest why this is happening. However something is
definitely going wrong, since xnpipe_minor_free should not be called
until my Linux task closes its end of the pipe, so the call by the
second RT thread to open the pipe should fail with -EBUSY. Any thoughts
on why this might be happening?
--
Doug Brunner
-------------- next part --------------
A non-text attachment was scrubbed...
Name: config-3.2.21-ipipe-small-2-ipd.gz
Type: application/x-gzip
Size: 13798 bytes
Desc: not available
URL: <http://www.xenomai.org/pipermail/xenomai/attachments/20120905/caa35f02/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: xddp-trycrash.c
Type: text/x-csrc
Size: 6234 bytes
Desc: not available
URL: <http://www.xenomai.org/pipermail/xenomai/attachments/20120905/caa35f02/attachment.c>
-------------- next part --------------
Loading Linux 3.2.21-ipipe-small-2-ipd ...
?EXT4-fs (hda1): couldn't mount as ext3 due to feature incompatibilities
EXT4-fs (hda1): couldn't mount as ext2 due to feature incompatibilities
INIT: version 2.88 booting
Using makefile-style concurrent boot in runlevel S.
Starting the hotplug events dispatcher: udevd.
Synthesizing the initial hotplug events...done.
Waiting for /dev to be fully populated...done.
Setting preliminary keymap...done.
Activating swap...done.
Checking root file system...fsck from util-linux-ng 2.17.2
/dev/hda1: clean, 72970/256512 files, 579050/1026048 blocks
done.
Cleaning up ifupdown....
Setting up networking....
Loading kernel modules...done.
Activating lvm and md swap...done.
Checking file systems...fsck from util-linux-ng 2.17.2
done.
Mounting local filesystems...done.
Activating swapfile swap...done.
Cleaning up temporary files....
Configuring network interfaces...done.
Starting portmap daemon....
Starting NFS common utilities: statd.
Cleaning up temporary files....
Setting console screen modes.
^[]Rcannot (un)set powersave mode
^[[9;30]^[[14;30]Skipping font and keymap setup (handled by console-setup).
Setting up console font and keymap...done.
Setting sensors limits.
Setting kernel variables ...done.
Loading the saved-state of the serial devices...
/dev/ttyS0 at 0x03f8 (irq = 4) is a 16550A
INIT: Entering runlevel: 2
Using makefile-style concurrent boot in runlevel 2.
Enabling additional executable binary formats: binfmt-supportmount: mount point /proc/sys/fs/binfmt_misc does not exist
Starting NFS common utilities: statd.
Starting portmap daemon...Already running..
Starting enhanced syslogd: rsyslogd.
Starting anac(h)ronistic cron: anacron.
Starting deferred execution scheduler: atd.
Starting periodic command scheduler: cron.
Starting system message bus: dbus.
Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon.
Starting MTA:Starting kerneloops:
exim4.
Loading cpufreq kernel modules...done (none).
CPUFreq Utilities: Setting ondemand CPUFreq governor...disabled, governor not available...done.
Starting network connection manager: NetworkManager.
Starting OpenBSD Secure Shell server: sshd.
I-pipe: Detected stalled head domain, probably caused by a bug.
A critical section may have been left unterminated.
Debian GNU/Linux 6.0 eve-0000 ttyS0
eve-0000 login: root
Password:
Last login: Wed Sep 5 10:53:59 PDT 2012 on ttyS0
Linux eve-0000 3.2.21-ipipe-small-2-ipd #7 Wed Sep 5 17:45:26 UTC 2012 i586
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@eve-0000:~# ./xddp-trycrash
Xenomai: corrupted queue, qslot->elems=5/5, qslot=b065b9c0 at kernel/xenomai/nucleus/heap.c:332
CPU PID PRI TIMEOUT STAT NAME
> 0 0 -1 0 00500080 ROOT
0 1539 0 0 00b00380 xddp-trycrash
0 1542 0 0 00b00380 xddp-trycrash
0 1543 42 0 00300380 xddp-trycrash
Master time base: clock=100421966997
next reply other threads:[~2012-09-06 5:53 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-06 5:53 Doug Brunner [this message]
2012-09-09 11:03 ` [Xenomai] Queue corruption from XDDP in Xenomai 2.6.1 Philippe Gerum
2012-09-10 0:19 ` Doug Brunner
2012-09-11 4:12 ` Doug Brunner
2012-09-11 7:46 ` Gilles Chanteperdrix
2012-09-18 22:30 ` Gilles Chanteperdrix
2012-09-23 14:06 ` Philippe Gerum
2012-09-23 14:07 ` Gilles Chanteperdrix
2012-09-23 14:09 ` Philippe Gerum
2012-09-23 14:11 ` Gilles Chanteperdrix
2012-09-23 14:18 ` Philippe Gerum
2012-09-23 14:21 ` Philippe Gerum
2012-09-23 14:25 ` Philippe Gerum
2012-09-23 14:26 ` Gilles Chanteperdrix
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50483A49.5090100@ebus.com \
--to=dbrunner@ebus.com \
--cc=xenomai@xenomai.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.