Bug 215834 - pup crashes if fds are closed
pup crashes if fds are closed
Status: CLOSED INSUFFICIENT_DATA
Product: Fedora
Classification: Fedora
Component: pirut (Show other bugs)
6
All Linux
medium Severity high
: ---
: ---
Assigned To: Jeremy Katz
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2006-11-15 18:17 EST by Olivier Crête
Modified: 2008-08-02 19:40 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2007-04-09 22:44:04 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Olivier Crête 2006-11-15 18:17:01 EST
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 14:30:38 EST
This works fine for me here -- what plugins do you have installed?
Comment 2 Olivier Crête 2006-11-16 16:42:36 EST
I only have installonlyn
Comment 3 Jeremy Katz 2007-04-09 16:26:44 EDT
This works fine for me here.  Can you get an strace of it?
Comment 4 Olivier Crête 2007-04-09 22:44:04 EDT
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.