Upload file script fails with OSError: [Errno 1]
Hello, I would like to report on a Galaxy issue and the my proposed solution for it, hopefully it will be helpful to other Galaxy users that encounter [are encountering] the same problem. I tried to upload to my local Galaxy a file that I has been transferred by a FTP client. Then, when Galaxy tried to "pull out" this file from the FTP server, the operation failed with this traceback: File "/home/galaxy/galaxy-dist/tools/data_source/upload.py", line 403, in <module> __main__() File "/home/galaxy/galaxy-dist/tools/data_source/upload.py", line 392, in __main__ add_file( dataset, registry, json_file, output_path ) File "/home/galaxy/galaxy-dist/tools/data_source/upload.py", line 289, in add_file line_count, converted_path = sniff.convert_newlines( dataset.path, in_place=in_place ) File "/home/galaxy/galaxy-dist/lib/galaxy/datatypes/sniff.py", line 98, in convert_newlines shutil.move( temp_name, fname ) File "/usr/lib64/python2.6/shutil.py", line 260, in move copy2(src, real_dst) File "/usr/lib64/python2.6/shutil.py", line 96, in copy2 copystat(src, dst) File "/usr/lib64/python2.6/shutil.py", line 66, in copystat os.utime(dst, (st.st_atime, st.st_mtime)) OSError: [Errno 1] Operation not permitted: '/home/galaxy_upload/data_upload/...' The source file that I tried to copy had read/write permissions for all, therefore, logically, this operation should not have failed... I read a bit about this issue and I found out that python command shutil.move might raise an OSError when it tries to move a file to a partition where the user (galaxy in this case) has write permission but he is not the owner. More specifically, the exception fails to modify the copystat data. I have found a post suggesting to simply IGNORE this OSError that was raised from copystat... Therefore, I added the following "try" statement to "galaxy-dist/lib/galaxy/datatypes/sniff.py on line 98: try: shutil.move( temp_name, fname ) # Return number of lines in file. except OSError: pass return ( i + 1, None ) and it solved the problem completely! This is the link to the post that I took the solution from: http://bugs.python.org/issue1438480 I'm also attaching a modified "sniff.py". Hopefully, this will be helpful to other galaxy developers, Best, Liram
participants (1)
-
liram_vardi@agilent.com