Description
In the last three days here in MoinMoinWiki were temporary (respectively for some hours) different error messages. It had always something to do with "Too many files are open". As a result, in JuraWiki 1 are some pages in RecentChanges marked as "deleted", although the revision history of these pages does not confirm this. Tryhing to revert the last version delivers the message: "Seite konnte nicht gesperrt werden. Fehlende Datei 'current'" (English: "page could not be locked missing file current").
Steps to reproduce
- Wait for this evening, perhaps the same phenomenon will occur.
Details
This Wiki, LinuxWiki and JuraWiki (running Twisted).
Workaround
- Wait for some hours.
- The admin restarts the server every few hours (really).
In JuraWiki we put the content of the pages that were deleted on new page2 and made a list of the pages that are concerned, see WasZuReparierenIst2.
Discussion
Twisted seems to close sockets just slowly. We do not know why.
Debugging helper:
- sockdebug.py
1 import socket, traceback, sys 2 3 _realrealsocket = socket._realsocket 4 _realclosedsocket = socket._closedsocket 5 6 _stream = sys.stderr 7 #_stream = open('socket.log') 8 9 def _socket(family, type, proto): 10 _sock = _realrealsocket(family, type, proto) 11 stack = traceback.format_stack() 12 print >>_stream, "OPEN:", repr(_sock), stack 13 return _sock 14 15 def _close(): 16 stack = traceback.format_stack() 17 print >>_stream, "CLOSE:", stack 18 return _realclosedsocket() 19 20 socket._realsocket = _socket 21 socket._closedsocket = _close 22
This is just a strat, and creates TONS of logging. Import it at some central place, before the server's mainloop.
The socket timeout of twisted defaulted to 12 hours. Changed to 10 minutes (still long enough) for MoinMoin usage.
Plan
- Priority: medium
Assigned to: ThomasWaldmann
- Status: fixed
The MoinMoinWiki is running on the same server like the LinuxWiki and the JuraWiki for example. (1)