On Thu, Aug 20, 2009 at 5:13 PM, Lukasz Szybalski<[email protected]> wrote: > Hello, > I am uploading tickets to trac. 500 a day. After almost a month+ I've > received this error. > > > Traceback (most recent call last): > File "xxx.py", line 115, in <module> > > filename=server.ticket.putAttachment(number,file_name,file_name,xmlrpclib.Binary(open(os.path.join(folder_name,file_name)).read())) > File "/usr/lib/python2.5/xmlrpclib.py", line 1147, in __call__ > return self.__send(self.__name, args) > File "/usr/lib/python2.5/xmlrpclib.py", line 1437, in __request > verbose=self.__verbose > File "/usr/lib/python2.5/xmlrpclib.py", line 1201, in request > return self._parse_response(h.getfile(), sock) > File "/usr/lib/python2.5/xmlrpclib.py", line 1340, in _parse_response > return u.close() > File "/usr/lib/python2.5/xmlrpclib.py", line 787, in close > raise Fault(**self._stack[0]) > xmlrpclib.Fault: <Fault 2: "'[Errno 31] Too many links: > '/home/trac/trac/attachments/ticket/32433'' while executing > 'ticket.putAttachment()'"> > > > > Is there a way to close the xmlrpclib.ServerProxy. I think that is > what caused this error. Every time I upload a file I create a service > that connects to trac. I do that because the filename of the file I > want to upload comes on stdin.
I found this: http://www.wlug.org.nz/EMLINK Too Many Links There are too many hard links to a file or directory on a filesystem. The exact number allowed is file-system dependent. Eg /usr/src/linux-2.4.19/include/linux/sysv_fs.h contains enum { XENIX_LINK_MAX = 126, /* ?? / SYSV_LINK_MAX = 126, / 127? 251? / V7_LINK_MAX = 126, / ?? */ COH_LINK_MAX = 10000, }; while /usr/src/linux-2.4.19/include/linux/ext3_fs.h has 1. define EXT3_LINK_MAX 32000 and /usr/src/linux-2.4.19/include/linux/reiserfs_fs.h has 1. define REISERFS_LINK_MAX (MAX_US_INT - 1000) (for maximum unsigned integer on the system). This could be caused by a directory having too many subdirectories (each subdirectory has .. as a hardlink to it's parent directory which causes that directory's hardlink count to be increased by one. So yes, this does mean that you are limited to 32000 subdirectories in one directory in ext3, even if you have hashdirs enabled.) As a consequence of this you can stat(2) a directory and add one (for ..) and you will know how many directories are in the current directory. (or subtract one (for .) to find out how many subdirectories there are). Some file systems (such as FAT) don't have hardlinks so the hardlink count can't overflow, and you can't rely on the hardlink count of a directory to be representive of how many subdirectories it has. What a confusing world we live in. I did reach the 32000 tickets. I have exactly: 31999 folder for ticket# on my ext3. ls -l |wc -l 31999 How do I increase that number on ext3? Thanks, Lucas --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Trac Users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/trac-users?hl=en -~----------~----~----~----~------~----~------~--~---
