[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

QNX subprocess bug

From: Bob Bramwell
Subject: QNX subprocess bug
Date: Sat, 25 Mar 2006 05:34:04 +0000 (GMT)
User-agent: Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.7) Gecko/20041221

I submitted an article about this a month or so ago but never saw it come around, so my apologies if this is old news to you.

The bug is showing up in emacs 21.2.1 on QNX 6.3.0. It appears that process IDs on QNX really occupy 32-bits. Some of them are quite large. This causes a problem in the subprocess package which uses an elisp integer (28 bits + type info - I think) to try to store the PID. An added complication is that there is a cheap-and-cheerful "just stuff this value into this elisp int" macro which (in this case) has the effect of clobbering the type bits, ultimately resulting in what appears to be a garbage collector infinite recursion crash.

Obvious this problem could, in principle, arise on any system that uses 32-bit process IDs, and it seems to me rather sloppy programming to use such a shortcut, especially in such comparatively rarely executed code.

It looks as though there ought to be some way to rewrite the code with the integer represented as a kind of indirect object, but I don't feel qualified to do this without consulting The Experts. Anyone wish to provide some guidance? I will gladly fix the problem given a few pointers.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]