Hello all,
We are trying to bootstrap our new koji setup and when we attempt to import using --link we get the error below. The packages that we are attempting to import are on the hub and have been places in /mnt/koji/import (same volume). The ownership on the packages is daemon (same as /mnt/koji/) - not sure if this matters.
sudo koji import --link /mnt/koji/alsa-lib-1.0.14-1.rc4.el5.src.rpm
Linking rpm to: /mnt/koji/work/cli-import/1216842099.8955669.PLyYLFZS/alsa-lib-1.0.14-1.rc4.el5.src.rpm
importing alsa-lib-1.0.14-1.rc4.el5.src.rpm... Fault: <Fault 1: 'Traceback (most recent call last):\n File "/usr/share/koji-hub/kojixmlrpc.py", line 86, in _marshaled_dispatch\n response = self._dispatch(method, params)\n File "/usr/share/koji-hub/kojixmlrpc.py", line 156, in _dispatch\n ret = func(*params,**opts)\n File "/usr/share/koji-hub/kojihub.py", line 4110, in importRPM\n import_rpm_file(fn,rpminfo['build'],rpminfo)\n File "/usr/share/koji-hub/kojihub.py", line 2991, in import_rpm_file\n os.rename(fn,final_path)\nOSError: [Errno 13] Permission denied\nLocals by frame, innermost last\nFrame HandlerDispatch in /usr/lib64/python2.4/site-packages/mod_python/importer.py at line 1537\n req = <mp_request object at 0x2b3497cbd410>\n parent = None\n config = {'PythonAutoReload': '0', 'PythonDebug': '1'}\n self = <mod_python.apache.CallBack instance at 0x2b3497cb3710>\n cache = <ERROR WHILE PRINTING VALUE>\n default_handler = handler\n phase = PythonHandler\n handler = kojixmlrpc\n hlist = {'handler':'kojixmlrpc','directory':'/usr/share/koji-hub/','silent':0}\n aborted = False\n directory = /usr/share/koji-hub/\n root = /usr/share/koji-hub/\n options = {'KojiTraceback': 'extended', 'KojiDebug': 'On', 'EmailDomain': '192.168.226.61', 'KojiWebURL': 'http://192.168.226.61/koji%5C http://192.168.226.61/koji%5C', 'LoginCreatesUser': 'Off', 'ProxyDNs': '/C=US/ST=New Jersey/O=Open System Solutions/CN=192.168.226.61', 'DNUsernameComponent': 'CN', 'KojiDir': '/mnt/koji', 'DBHost': 'localhost', 'DBUser': 'koji', 'DBName': 'koji'}\n result = 500\nFrame _process_target in /usr/lib64/python2.4/site-packages/mod_python/importer.py at line 1229\n req = <mp_request object at 0x2b3497cbd410>\n silent = 0\n default = handler\n handler = kojixmlrpc\n object = <function handler at 0x2b34997152a8>\n module = <module '_mp_df1c13776110deb1e020020636703560' from '/usr/share/koji-hub/kojixmlrpc.py'>\n directory = /usr/share/koji-hub/\n parts = ['kojixmlrpc']\n result = -1\n object_str = handler\n expected = [-1, 0]\n module_name = kojixmlrpc\n path = ['/usr/share/koji-hub/']\n config = {'PythonAutoReload': '0', 'PythonDebug': '1'}\n arg = <mp_request object at 0x2b3497cbd410>\nFrame _execute_target in /usr/lib64/python2.4/site-packages/mod_python/importer.py at line 1128\n one_process = False\n object = <function handler at 0x2b34997152a8>\n req = <mp_request object at 0x2b3497cbd410>\n pdb_debug = 0\n arg = <mp_request object at 0x2b3497cbd410>\n config = {'PythonAutoReload': '0', 'PythonDebug': '1'}\nFrame handler in /usr/share/koji-hub/kojixmlrpc.py at line 291\n functions = <_mp_4e76479ee7b716cdbf29397025ee2356.RootExports object at 0x2b349c6f08d0>\n profiling = False\n h = <_mp_df1c13776110deb1e020020636703560.ModXMLRPCRequestHandler object at 0x2b349c6f0d10>\n req = <mp_request object at 0x2b3497cbd410>\n hostFunctions = <_mp_4e76479ee7b716cdbf29397025ee2356.HostExports object at 0x2b349c6f0d90>\n opts = {'KojiTraceback': 'extended', 'KojiDebug': 'On', 'EmailDomain': '192.168.226.61', 'KojiWebURL': 'http://192.168.226.61/koji%5C http://192.168.226.61/koji%5C', 'LoginCreatesUser': 'Off', 'ProxyDNs': '/C=US/ST=New Jersey/O=Open System Solutions/CN=192.168.226.61', 'DNUsernameComponent': 'CN', 'KojiDir': '/mnt/koji', 'DBHost': 'localhost', 'DBUser': 'koji', 'DBName': 'koji'}\nFrame handle_request in /usr/share/koji-hub/kojixmlrpc.py at line 242\n self = <_mp_df1c13776110deb1e020020636703560.ModXMLRPCRequestHandler object at 0x2b349c6f0d10>\n req = <mp_request object at 0x2b3497cbd410>\nFrame _marshaled_dispatch in /usr/share/koji-hub/kojixmlrpc.py at line 112\n e = [Errno 13] Permission denied\n self = <_mp_df1c13776110deb1e020020636703560.ModXMLRPCRequestHandler object at 0x2b349c6f0d10>\n e_class = exceptions.OSError\n start = 1216842100.35\n faultCode = 1\n params = <ERROR WHILE PRINTING VALUE>\n tb_str = Traceback (most recent call last):\n File "/usr/share/koji-hub/kojixmlrpc.py", line 86, in _marshaled_dispatch\n response = self._dispatch(method, params)\n File "/usr/share/koji-hub/kojixmlrpc.py", line 156, in _dispatch\n ret = func(*params,**opts)\n File "/usr/share/koji-hub/kojihub.py", line 4110, in importRPM\n import_rpm_file(fn,rpminfo['build'],rpminfo)\n File "/usr/share/koji-hub/kojihub.py", line 2991, in import_rpm_file\n os.rename(fn,final_path)\nOSError: [Errno 13] Permission denied\n\n tb_type = extended\n data = <?xml version=\'1.0\'?>\n<methodCall>\n<methodName>importRPM</methodName>\n<params>\n<param>\n<value><string>cli-import/1216842099.8955669.PLyYLFZS</string></value>\n</param>\n<param>\n<value><string>alsa-lib-1.0.14-1.rc4.el5.src.rpm</string></value>\n</param>\n</params>\n</methodCall>\n\n method = importRPM\nFrame _dispatch in /usr/share/koji-hub/kojixmlrpc.py at line 156\n self = <_mp_df1c13776110deb1e020020636703560.ModXMLRPCRequestHandler object at 0x2b349c6f0d10>\n start = 1216842100.38\n params = <ERROR WHILE PRINTING VALUE>\n func = <bound method RootExports.importRPM of <_mp_4e76479ee7b716cdbf29397025ee2356.RootExports object at 0x2b349c6f08d0>>\n method = importRPM\n opts = {}\nFrame importRPM in /usr/share/koji-hub/kojihub.py at line 4110\n uploadpath = /mnt/koji/work\n basename = alsa-lib-1.0.14-1.rc4.el5.src.rpm\n rpminfo = {'build_id': 20L, 'brootid': None, 'sourcepackage': 1, 'name': 'alsa-lib', 'buildtime': 1194704966, 'id': 28L, 'epoch': None, 'version': '1.0.14', 'build': {'sourcepackage': 1, 'name': 'alsa-lib', 'buildtime': 1194704966, 'epoch': None, 'version': '1.0.14', 'release': '1.rc4.el5', 'sourcerpm': [], 'arch': 'src', 'id': 20L}, 'release': '1.rc4.el5', 'sourcerpm': [], 'arch': 'src', 'payloadhash': '8fa4adb63144d52fc1ceb29f6022b7cb', 'size': 796510}\n path = cli-import/1216842099.8955669.PLyYLFZS\n self = <_mp_4e76479ee7b716cdbf29397025ee2356.RootExports object at 0x2b349c6f08d0>\n fn = /mnt/koji/work/cli-import/1216842099.8955669.PLyYLFZS/alsa-lib-1.0.14-1.rc4.el5.src.rpm\nFrame import_rpm_file in /usr/share/koji-hub/kojihub.py at line 2991\n final_path = /mnt/koji/packages/alsa-lib/1.0.14/1.rc4.el5/src/alsa-lib-1.0.14-1.rc4.el5.src.rpm\n rpminfo = {'build_id': 20L, 'brootid': None, 'sourcepackage': 1, 'name': 'alsa-lib', 'buildtime': 1194704966, 'id': 28L, 'epoch': None, 'version': '1.0.14', 'build': {'sourcepackage': 1, 'name': 'alsa-lib', 'buildtime': 1194704966, 'epoch': None, 'version': '1.0.14', 'release': '1.rc4.el5', 'sourcerpm': [], 'arch': 'src', 'id': 20L}, 'release': '1.rc4.el5', 'sourcerpm': [], 'arch': 'src', 'payloadhash': '8fa4adb63144d52fc1ceb29f6022b7cb', 'size': 796510}\n buildinfo = {'sourcepackage': 1, 'name': 'alsa-lib', 'buildtime': 1194704966, 'epoch': None, 'version': '1.0.14', 'release': '1.rc4.el5', 'sourcerpm': [], 'arch': 'src', 'id': 20L}\n fn = /mnt/koji/work/cli-import/1216842099.8955669.PLyYLFZS/alsa-lib-1.0.14-1.rc4.el5.src.rpm\n'>
Any ideas?
Thanks.
On Wed, 2008-07-23 at 16:33 -0400, Naveen Gavini wrote:
Hello all,
We are trying to bootstrap our new koji setup and when we attempt to import using --link we get the error below. The packages that we are attempting to import are on the hub and have been places in /mnt/koji/import (same volume). The ownership on the packages is daemon (same as /mnt/koji/) - not sure if this matters.
sudo koji import --link /mnt/koji/alsa-lib-1.0.14-1.rc4.el5.src.rpm
Linking rpm to: /mnt/koji/work/cli-import/1216842099.8955669.PLyYLFZS/alsa-lib-1.0.14-1.rc4.el5.src.rpm
importing alsa-lib-1.0.14-1.rc4.el5.src.rpm... Fault: <Fault 1: 'Traceback (most recent call last):\n File "/usr/share/koji-hub/kojixmlrpc.py", line 86, in _marshaled_dispatch\n response = self._dispatch(method, params)\n File "/usr/share/koji-hub/kojixmlrpc.py", line 156, in _dispatch\n ret = func(*params,**opts)\n File "/usr/share/koji-hub/kojihub.py", line 4110, in importRPM\n import_rpm_file(fn,rpminfo['build'],rpminfo)\n File "/usr/share/koji-hub/kojihub.py", line 2991, in import_rpm_file\n os.rename(fn,final_path)\nOSError: [Errno 13] Permission denied\nLocals by frame, innermost last\nFrame HandlerDispatch in /usr/lib64/python2.4/site-packages/mod_python/importer.py at line 1537\n req = <mp_request object at 0x2b3497cbd410>\n parent = None\n config = {'PythonAutoReload': '0', 'PythonDebug': '1'}\n self = <mod_python.apache.CallBack instance at 0x2b3497cb3710>\n cache = <ERROR WHILE PRINTING VALUE>\n default_handler = handler\n phase = PythonHandler\n handler = kojixmlrpc\n hlist = {'handler':'kojixmlrpc','directory':'/usr/share/koji-hub/','silent':0}\n aborted = False\n directory = /usr/share/koji-hub/\n root = /usr/share/koji-hub/\n options = {'KojiTraceback': 'extended', 'KojiDebug': 'On', 'EmailDomain': '192.168.226.61', 'KojiWebURL': 'http://192.168.226.61/koji%5C http://192.168.226.61/koji%5C', 'LoginCreatesUser': 'Off', 'ProxyDNs': '/C=US/ST=New Jersey/O=Open System Solutions/CN=192.168.226.61', 'DNUsernameComponent': 'CN', 'KojiDir': '/mnt/koji', 'DBHost': 'localhost', 'DBUser': 'koji', 'DBName': 'koji'}\n result = 500\nFrame _process_target in /usr/lib64/python2.4/site-packages/mod_python/importer.py at line 1229\n req = <mp_request object at 0x2b3497cbd410>\n silent = 0\n default = handler\n handler = kojixmlrpc\n object = <function handler at 0x2b34997152a8>\n module = <module '_mp_df1c13776110deb1e020020636703560' from '/usr/share/koji-hub/kojixmlrpc.py'>\n directory = /usr/share/koji-hub/\n parts = ['kojixmlrpc']\n result = -1\n object_str = handler\n expected = [-1, 0]\n module_name = kojixmlrpc\n path = ['/usr/share/koji-hub/']\n config = {'PythonAutoReload': '0', 'PythonDebug': '1'}\n arg = <mp_request object at 0x2b3497cbd410>\nFrame _execute_target in /usr/lib64/python2.4/site-packages/mod_python/importer.py at line 1128\n one_process = False\n object = <function handler at 0x2b34997152a8>\n req = <mp_request object at 0x2b3497cbd410>\n pdb_debug = 0\n arg = <mp_request object at 0x2b3497cbd410>\n config = {'PythonAutoReload': '0', 'PythonDebug': '1'}\nFrame handler in /usr/share/koji-hub/kojixmlrpc.py at line 291\n functions = <_mp_4e76479ee7b716cdbf29397025ee2356.RootExports object at 0x2b349c6f08d0>\n profiling = False\n h = <_mp_df1c13776110deb1e020020636703560.ModXMLRPCRequestHandler object at 0x2b349c6f0d10>\n req = <mp_request object at 0x2b3497cbd410>\n hostFunctions = <_mp_4e76479ee7b716cdbf29397025ee2356.HostExports object at 0x2b349c6f0d90>\n opts = {'KojiTraceback': 'extended', 'KojiDebug': 'On', 'EmailDomain': '192.168.226.61', 'KojiWebURL': 'http://192.168.226.61/koji%5C http://192.168.226.61/koji%5C', 'LoginCreatesUser': 'Off', 'ProxyDNs': '/C=US/ST=New Jersey/O=Open System Solutions/CN=192.168.226.61', 'DNUsernameComponent': 'CN', 'KojiDir': '/mnt/koji', 'DBHost': 'localhost', 'DBUser': 'koji', 'DBName': 'koji'}\nFrame handle_request in /usr/share/koji-hub/kojixmlrpc.py at line 242\n self = <_mp_df1c13776110deb1e020020636703560.ModXMLRPCRequestHandler object at 0x2b349c6f0d10>\n req = <mp_request object at 0x2b3497cbd410>\nFrame _marshaled_dispatch in /usr/share/koji-hub/kojixmlrpc.py at line 112\n e = [Errno 13] Permission denied\n self = <_mp_df1c13776110deb1e020020636703560.ModXMLRPCRequestHandler object at 0x2b349c6f0d10>\n e_class = exceptions.OSError\n start = 1216842100.35\n faultCode = 1\n params = <ERROR WHILE PRINTING VALUE>\n tb_str = Traceback (most recent call last):\n File "/usr/share/koji-hub/kojixmlrpc.py", line 86, in _marshaled_dispatch\n response = self._dispatch(method, params)\n File "/usr/share/koji-hub/kojixmlrpc.py", line 156, in _dispatch\n ret = func(*params,**opts)\n File "/usr/share/koji-hub/kojihub.py", line 4110, in importRPM\n import_rpm_file(fn,rpminfo['build'],rpminfo)\n File "/usr/share/koji-hub/kojihub.py", line 2991, in import_rpm_file\n os.rename(fn,final_path)\nOSError: [Errno 13] Permission denied\n\n tb_type = extended\n data = <?xml version=\'1.0\'?>\n<methodCall>\n<methodName>importRPM</methodName>\n<params>\n<param>\n<value><string>cli-import/1216842099.8955669.PLyYLFZS</string></value>\n</param>\n<param>\n<value><string>alsa-lib-1.0.14-1.rc4.el5.src.rpm</string></value>\n</param>\n</params>\n</methodCall>\n\n method = importRPM\nFrame _dispatch in /usr/share/koji-hub/kojixmlrpc.py at line 156\n self = <_mp_df1c13776110deb1e020020636703560.ModXMLRPCRequestHandler object at 0x2b349c6f0d10>\n start = 1216842100.38\n params = <ERROR WHILE PRINTING VALUE>\n func = <bound method RootExports.importRPM of <_mp_4e76479ee7b716cdbf29397025ee2356.RootExports object at 0x2b349c6f08d0>>\n method = importRPM\n opts = {}\nFrame importRPM in /usr/share/koji-hub/kojihub.py at line 4110\n uploadpath = /mnt/koji/work\n basename = alsa-lib-1.0.14-1.rc4.el5.src.rpm\n rpminfo = {'build_id': 20L, 'brootid': None, 'sourcepackage': 1, 'name': 'alsa-lib', 'buildtime': 1194704966, 'id': 28L, 'epoch': None, 'version': '1.0.14', 'build': {'sourcepackage': 1, 'name': 'alsa-lib', 'buildtime': 1194704966, 'epoch': None, 'version': '1.0.14', 'release': '1.rc4.el5', 'sourcerpm': [], 'arch': 'src', 'id': 20L}, 'release': '1.rc4.el5', 'sourcerpm': [], 'arch': 'src', 'payloadhash': '8fa4adb63144d52fc1ceb29f6022b7cb', 'size': 796510}\n path = cli-import/1216842099.8955669.PLyYLFZS\n self = <_mp_4e76479ee7b716cdbf29397025ee2356.RootExports object at 0x2b349c6f08d0>\n fn = /mnt/koji/work/cli-import/1216842099.8955669.PLyYLFZS/alsa-lib-1.0.14-1.rc4.el5.src.rpm\nFrame import_rpm_file in /usr/share/koji-hub/kojihub.py at line 2991\n final_path = /mnt/koji/packages/alsa-lib/1.0.14/1.rc4.el5/src/alsa-lib-1.0.14-1.rc4.el5.src.rpm\n rpminfo = {'build_id': 20L, 'brootid': None, 'sourcepackage': 1, 'name': 'alsa-lib', 'buildtime': 1194704966, 'id': 28L, 'epoch': None, 'version': '1.0.14', 'build': {'sourcepackage': 1, 'name': 'alsa-lib', 'buildtime': 1194704966, 'epoch': None, 'version': '1.0.14', 'release': '1.rc4.el5', 'sourcerpm': [], 'arch': 'src', 'id': 20L}, 'release': '1.rc4.el5', 'sourcerpm': [], 'arch': 'src', 'payloadhash': '8fa4adb63144d52fc1ceb29f6022b7cb', 'size': 796510}\n buildinfo = {'sourcepackage': 1, 'name': 'alsa-lib', 'buildtime': 1194704966, 'epoch': None, 'version': '1.0.14', 'release': '1.rc4.el5', 'sourcerpm': [], 'arch': 'src', 'id': 20L}\n fn = /mnt/koji/work/cli-import/1216842099.8955669.PLyYLFZS/alsa-lib-1.0.14-1.rc4.el5.src.rpm\n'>
Embedded in that horribly mangled stack trace was the root of the problem:
File "/usr/share/koji-hub/kojihub.py", line 2991, in import_rpm_file os.rename(fn,final_path) OSError: [Errno 13] Permission denied
The problem is that "koji import --link", while very useful, is kind of a hack. In order for it to work, is assumes your httpd is running as uid 48 (the "apache" user on Fedora) and chown's the directory under /mnt/koji/work/cli-import to uid 48 so httpd can rename() the file from that dir to it's final location under /mnt/koji/packages successfully. In your case, httpd is running under a different uid, so that rename fails.
To fix this, I would do 2 things:
1. In /usr/bin/koji, change the last 2 numbers in the line
os.chown(os.path.dirname(dst), 48, 48) #XXX - hack
to the uid of the "daemon" user (whatever user httpd runs as).
2. Make sure all packages under /mnt/koji/import are owned by the daemon user before starting the import.
Give that a try, and let me know if you're still running in to errors.
On Wed, 2008-07-23 at 16:33 -0400, Naveen Gavini wrote:
Hello all,
We are trying to bootstrap our new koji setup and when we attempt to import using --link we get the error below. The packages that we are attempting to import are on the hub and have been places in /mnt/koji/import (same volume). The ownership on the packages is daemon (same as /mnt/koji/) - not sure if this matters.
sudo koji import --link /mnt/koji/alsa-lib-1.0.14-1.rc4.el5.src.rpm
Linking rpm to: /mnt/koji/work/cli-import/1216842099.8955669.PLyYLFZS/alsa-lib-1.0.14-1.rc4.el5.src.rpm
os.rename(fn,final_path)\nOSError: [Errno 13] Permission denied
Did you make sure that the entire tree under /mnt/koji is owned by user apache and group apache (or whatever user/group your web server runs as)? The xmlrpc code runs as the web user, so it needs permissions on this tree.
buildsys@lists.fedoraproject.org