sockets and pipes and bad results

Marilyn Davis marilyn at deliberate.com
Fri Sep 24 21:01:21 EDT 2004


Hello Python Gurus,

I'm having a problem when writing to a socket.  It only happens when I
am also doing some piping into exim, my MTA.  Like this:

./test1.py

>> Here test1.py sends email via my module, exim.py, which pipes the
>> message into exim.  All the digits are the results from fileno()
>> calls, on the open socket or on open file descriptors.

exim pipe descriptors:  7 6 9
exim.py piped into  6
exim closed pipes:  6 7 9

>> Next, test1.py calls my module, xfer_pop.py to read mail from a pop
>> server, opening a socket:

xfer_pop.py:  ['from test1:marilyn1', 'test', 2]
xfer_pop.py socket 6 opened and used: +OK fishgills.net POP MDaemon 7.0.1 ready <MDAEMON-F200409241735.AA355831MD5705 at fishgills.net>

>> After some conversation, it decides to collect message # 139 and
>> pipe it into exim:

XferMessage # 139.
xfer_pop socket before exim pipe:  6
exim pipe descriptors:  8 7 10

>> here it's piping the headers
exim.py piped into  7

>> and now it's trying to receive the body:
xfer_pop.py socket in loop: 6
Traceback (most recent call last):
   File "./test1.py", line 254, in ?
     exec(x)
   File "<string>", line 1, in ?
   File "./test1.py", line 143, in marilyn1
     xfer_pop.main(['from test1:marilyn1', 'test', 2])
   File "/b/bmail/scripts/xfer_pop.py", line 446, in main
     popee.run()
   File "/b/bmail/scripts/xfer_pop.py", line 338, in run
     XferMessage(self, (str(msg)))
   File "/b/bmail/scripts/xfer_pop.py", line 70, in __init__
     more = self.popper.remote.recv(BLOCK)
socket.error: (9, 'Bad file descriptor')

---

My test1.py can call xfer_pop.py lots of times, piping into exim many
times each call, and it will always be successful, UNLESS test1.py
makes a call to exim.py first.  Once that happens, a subsequent call
to xfer_pop.py crashes as above.

Can anyone suggest a possible cause or remedy?

Thank you for any help you can give.

Marilyn Davis








More information about the Python-list mailing list