[Python-Dev] Return code when there's a problem at shutdown

Terry Reedy tjreedy at udel.edu
Mon Aug 9 00:49:50 CEST 2010


On 8/8/2010 5:49 PM, Antoine Pitrou wrote:
>
> Hello,
>
> In issue #5319, the poster complains that redirecting stdout to a
> misbehaving (pseudo-)file such as /dev/full should produce a non-zero
> error code when the IO error happens at shutdown (when calling flush()
> on stdout).

I think is worth noting that in the artificial example,
python2.5 -c 'print((1, 2, 3))' > /dev/full || echo error status
the redirection occurs outside (before) the program operation.
>
> Is it a reasonable expectation? What would you think of making the
> change?

It depends on whether or not one considers shutdown operations as part 
of the program operation. I could argue this either way.

In the above example, I could say that Python did what it promised to do 
-- print something to the stdout stream, and that failure on flushing 
was outside its purview.

I could also say that if one wants the flush to be considered part of 
the program operation, one should put it in the program explicitly 
instead of depending on implicit operations after the program ended.

> (it would require giving a return value to Py_Finalize(), which
> currently returns nothing)

I have the impression that finalization sometimes generates bogus errors 
due the order of operations. If so returning something would require 
distinguishing between 'proper' and 'bogus' errors. How easy would that 
be. If non-trivial, I would go back to "If you want shutdown errors 
reported, put them in the program explicitly."

-- 
Terry Jan Reedy



More information about the Python-Dev mailing list