Bug 215834 - pup crashes if fds are closed
Summary: pup crashes if fds are closed
Keywords:
Status: CLOSED INSUFFICIENT_DATA
Alias: None
Product: Fedora
Classification: Fedora
Component: pirut
Version: 6
Hardware: All
OS: Linux
medium
high
Target Milestone: ---
Assignee: Jeremy Katz
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2006-11-15 23:17 UTC by Olivier Crête
Modified: 2008-08-02 23:40 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-04-10 02:44:04 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Olivier Crête 2006-11-15 23:17:01 UTC
Description of problem:

pirut dies if stdin/stderr are closed

Version-Release number of selected component (if applicable):
1.2.5-1

How reproducible:

Every time

Steps to Reproduce:

in bash:
pup 1<&- 2<&-

or doing "apply updates" from puplet
  
Actual results:

crashes

Additional info:

Component: Software Updater
Summary: TB2800fe58 traceback.py:13:_print:IOError: [Errno 9] Bad file descriptor

Traceback (most recent call last):
  File "/usr/sbin/pup", line 573, in ?
    main()
  File "/usr/sbin/pup", line 566, in main
    pup = PackageUpdater()
  File "/usr/sbin/pup", line 87, in __init__
    GraphicalYumBase.__init__(self, False)
  File "/usr/lib/python2.4/site-packages/pirut/__init__.py", line 124, in __init__
    plugin_types=(yum.plugins.TYPE_CORE,))
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 123, in
doConfigSetup
    startupconf.pluginconfpath)
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 252, in
doPluginSetup
    plugin_types, confpath)
  File "/usr/lib/python2.4/site-packages/yum/plugins.py", line 129, in __init__
    self._importplugins(types)
  File "/usr/lib/python2.4/site-packages/yum/plugins.py", line 170, in
_importplugins
    self._loadplugin(modulefile, types)
  File "/usr/lib/python2.4/site-packages/yum/plugins.py", line 218, in _loadplugin
    self.verbose_logger.log(logginglevels.INFO_2, 'Loading "%s" plugin', modname)
  File "/usr/lib/python2.4/logging/__init__.py", line 1040, in log
    apply(self._log, (level, msg, args), kwargs)
  File "/usr/lib/python2.4/logging/__init__.py", line 1079, in _log
    self.handle(record)
  File "/usr/lib/python2.4/logging/__init__.py", line 1089, in handle
    self.callHandlers(record)
  File "/usr/lib/python2.4/logging/__init__.py", line 1126, in callHandlers
    hdlr.handle(record)
  File "/usr/lib/python2.4/logging/__init__.py", line 642, in handle
    self.emit(record)
  File "/usr/lib/python2.4/logging/__init__.py", line 744, in emit
    self.handleError(record)
  File "/usr/lib/python2.4/logging/__init__.py", line 693, in handleError
    traceback.print_exception(ei[0], ei[1], ei[2], None, sys.stderr)
  File "/usr/lib/python2.4/traceback.py", line 124, in print_exception
    _print(file, 'Traceback (most recent call last):')
  File "/usr/lib/python2.4/traceback.py", line 13, in _print
    file.write(str+terminator)
IOError: [Errno 9] Bad file descriptor

Local variables in innermost frame:
file: <open file '<stderr>', mode 'w' at 0xb7ee00b0>
terminator: 

str: Traceback (most recent call last):



from puplet I get:

Component: Software Updater
Summary: TB2800fe58 traceback.py:13:_print:IOError: [Errno 5] Input/output error

Traceback (most recent call last):
  File "/usr/sbin/pup", line 573, in ?
    main()
  File "/usr/sbin/pup", line 566, in main
    pup = PackageUpdater()
  File "/usr/sbin/pup", line 87, in __init__
    GraphicalYumBase.__init__(self, False)
  File "/usr/lib/python2.4/site-packages/pirut/__init__.py", line 124, in __init__
    plugin_types=(yum.plugins.TYPE_CORE,))
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 123, in
doConfigSetup
    startupconf.pluginconfpath)
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 252, in
doPluginSetup
    plugin_types, confpath)
  File "/usr/lib/python2.4/site-packages/yum/plugins.py", line 129, in __init__
    self._importplugins(types)
  File "/usr/lib/python2.4/site-packages/yum/plugins.py", line 170, in
_importplugins
    self._loadplugin(modulefile, types)
  File "/usr/lib/python2.4/site-packages/yum/plugins.py", line 218, in _loadplugin
    self.verbose_logger.log(logginglevels.INFO_2, 'Loading "%s" plugin', modname)
  File "/usr/lib/python2.4/logging/__init__.py", line 1040, in log
    apply(self._log, (level, msg, args), kwargs)
  File "/usr/lib/python2.4/logging/__init__.py", line 1079, in _log
    self.handle(record)
  File "/usr/lib/python2.4/logging/__init__.py", line 1089, in handle
    self.callHandlers(record)
  File "/usr/lib/python2.4/logging/__init__.py", line 1126, in callHandlers
    hdlr.handle(record)
  File "/usr/lib/python2.4/logging/__init__.py", line 642, in handle
    self.emit(record)
  File "/usr/lib/python2.4/logging/__init__.py", line 744, in emit
    self.handleError(record)
  File "/usr/lib/python2.4/logging/__init__.py", line 693, in handleError
    traceback.print_exception(ei[0], ei[1], ei[2], None, sys.stderr)
  File "/usr/lib/python2.4/traceback.py", line 124, in print_exception
    _print(file, 'Traceback (most recent call last):')
  File "/usr/lib/python2.4/traceback.py", line 13, in _print
    file.write(str+terminator)
IOError: [Errno 5] Input/output error

Local variables in innermost frame:
file: <open file '<stderr>', mode 'w' at 0xb7f770b0>
terminator: 

str: Traceback (most recent call last):

Comment 1 Jeremy Katz 2006-11-16 19:30:38 UTC
This works fine for me here -- what plugins do you have installed?

Comment 2 Olivier Crête 2006-11-16 21:42:36 UTC
I only have installonlyn

Comment 3 Jeremy Katz 2007-04-09 20:26:44 UTC
This works fine for me here.  Can you get an strace of it?

Comment 4 Olivier Crête 2007-04-10 02:44:04 UTC
I don't have access to that fedora workstation anymore, so I can't test .. sorry..


Note You need to log in before you can comment on or make changes to this bug.