script exits prematurely with no stderr output, but with system errors

Larry Martell larry.martell at gmail.com
Thu Apr 7 08:53:12 EDT 2016


On Sun, Mar 20, 2016 at 4:55 PM, Larry Martell <larry.martell at gmail.com> wrote:
> On Sun, Mar 20, 2016 at 4:47 PM, Joel Goldstick
> <joel.goldstick at gmail.com> wrote:
>> On Sun, Mar 20, 2016 at 4:32 PM, Larry Martell <larry.martell at gmail.com>
>> wrote:
>>
>>> I have a script that I run a lot - at least 10 time every day. Usually
>>> it works fine. But sometime it just stops running with nothing output
>>> to stdout or stderr. I've been trying to debug this for a while, and
>>> today I looked in the system logs and saw this:
>>>
>>> abrt: detected unhandled Python exception in
>>> '/home/prod_user/python/make_workitem_list.py'
>>> abrtd: Directory 'pyhook-2016-03-19-22:20:43-26461' creation detected
>>> abrt-server[3688]: Saved Python crash dump of pid 26461 to
>>> /var/spool/abrt/pyhook-2016-03-19-22:20:43-26461
>>> abrtd: Executable '/home/prod_user/python/make_workitem_list.py'
>>> doesn't belong to any package and ProcessUnpackaged is set to 'no'
>>> abrtd: 'post-create' on
>>> '/var/spool/abrt/pyhook-2016-03-19-22:20:43-26461' exited with 1
>>> abrtd: Deleting problem directory
>>> '/var/spool/abrt/pyhook-2016-03-19-22:20:43-26461'
>>> abrtd: make_workitem_list: page allocation failure. order:1, mode:0x20
>>> abrtd: Pid: 31870, comm: make_workitem_list Not tainted
>>> 2.6.32-573.12.1.el6.x86_64 #1
>>>
>>> I have never seen anything like this before. Usually, if there is an
>>> unhandled exception something is dumped to stderr. Anyone have any
>>> idea what is going on? How can I get it to not delete this crash dump
>>> it mentioned? I guess I can put a big exception handler around the
>>> enter script with a traceback.
>>>
>>> This is on Red Hat Enterprise Linux Server release 6.7 (Santiago).
>>
>> Googling I found this:
>> http://stackoverflow.com/questions/2628901/interpreting-kernel-message-page-allocation-failure-order1
>>
>> It seems that the kernel can't allocate memory is a likely cause.

I modified the program to use less memory and I am not getting the
page allocation failure any more, but I am still getting the unhanded
exceptions messages in the system logs.

> Yes, I was thinking that as well about the "page allocation failure"
> message, but it's almost like there were 2 errors, the first being the
> unhandled exception. But why would it not output something to stderr?

I was able to configure the abrt daemon to capture these unhanded
exceptions and they are just typical ValueErrors and TypeErrors (which
I will of course deal with in my program). But I wonder why these
exceptions were not just printed to stderr as other unhanded
exceptions are. What is special about these that made the OS get
involved?



More information about the Python-list mailing list