Hi
I made new setup koji-1.15.0-6.el7
Scratch build working fine. But real build not.
$ koji build maintenance-2.6 gd-last-2.1.1-1.el7.centos.src.rpm Uploading srpm: gd-last-2.1.1-1.el7.centos.src.rpm [====================================] 100% 00:00:00 1.96 MiB 34.95 MiB/sec Created task: 48 Task info: https://koji.oro.cloud/koji/taskinfo?taskID=48 Watching tasks (this may be safely interrupted)... 48 build (maintenance-2.6, gd-last-2.1.1-1.el7.centos.src.rpm): free 48 build (maintenance-2.6, gd-last-2.1.1-1.el7.centos.src.rpm): free -> open (koji.oro.cloud) 49 buildArch (gd-last-2.1.1-1.el7.centos.src.rpm, x86_64): free 49 buildArch (gd-last-2.1.1-1.el7.centos.src.rpm, x86_64): free -> open (koji.oro.cloud) 49 buildArch (gd-last-2.1.1-1.el7.centos.src.rpm, x86_64): open (koji.oro.cloud) -> closed 0 free 1 open 1 done 0 failed 48 build (maintenance-2.6, gd-last-2.1.1-1.el7.centos.src.rpm): open (koji.oro.cloud) -> FAILED: Fault: <Fault 1: 'Traceback (most recent call last):\n File "/usr/lib/python2.7/site-packages/koji/db.py", line 135, in execute\n ret = self.cursor.execute(operation, parameters)\nKeyError: 'users_usertype'\nLocals by frame, innermost last\nFrame application in /usr/share/koji-hub/kojixmlrpc.py at line 725\n start_response = <built-in method start_response of mod_wsgi.Adapter object at 0x55a48d3c4be8>\n h = <_mod_wsgi_df1c13776110deb1e020020636703560.ModXMLRPCRequestHandler object at 0x55a48d3c5e50>\n memory_usage_at_start = 19708\n environ = {'mod_wsgi.listener_port': '443', 'CONTEXT_DOCUMENT_ROOT': '/usr/share/koji-hub/kojixmlrpc.py', 'SERVER_SOFTWARE': 'Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips mod_auth_gssapi/1.5.1 mod_wsgi/3.4 Python/2.7.5', 'SCRIPT_NAME': '/kojihub', 'mod_wsgi.enable_sendfile': '0', 'mod_wsgi.handler_script': '', 'SERVER_SIGNATURE': '', 'REQUEST_METHOD': 'POST', 'PATH_INFO': '', 'SERVER_PROTOCOL': 'HTTP/1.1', 'QUERY_STRING': 'session-id=138&session-key=5-AkzpjdJPCTuAL6S7Wnd&callnum=14', 'SSL_TLS_SNI': 'koji.oro.cloud', 'CONTENT_LENGTH': '199', 'HTTP_USER_AGENT': 'koji/1', 'HTTP_CONNECTION': 'keep-alive', 'SERVER_NAME': 'koji.oro.cloud', 'REMOTE_ADDR': '35.192.190.50', 'mod_wsgi.queue_start': '1519916764342413', 'mod_wsgi.request_handler': 'wsgi-script', 'wsgi.url_scheme': 'https', 'mod_wsgi.callable_object': 'application', 'SERVER_PORT': '443', 'wsgi.multiprocess': True, 'mod_wsgi.input_chunked': '0', 'SERVER_ADDR': '10.100.4.3', 'DOCUMENT_ROOT': '/var/www/html', 'mod_wsgi.process_group': '', 'SCRIPT_FILENAME': '/usr/share/koji-hub/kojixmlrpc.py', 'SERVER_ADMIN': 'root@localhost', 'wsgi.input': <mod_wsgi.Input object at 0x7fab36baa5b0>, 'HTTP_HOST': 'koji.oro.cloud', 'CONTEXT_PREFIX': '/kojihub', 'wsgi.multithread': False, 'REQUEST_URI': '/kojihub?session-id=138&session-key=5-AkzpjdJPCTuAS7Wnd&callnum=14', 'HTTP_ACCEPT': '*/*', 'wsgi.version': (1, 0), 'GATEWAY_INTERFACE': 'CGI/1.1', 'wsgi.run_once': False, 'wsgi.errors': <mod_wsgi.Log object at 0x55a48d3ce170>, 'REMOTE_PORT': '50954', 'mod_wsgi.listener_host': '', 'REQUEST_SCHEME': 'https', 'mod_wsgi.version': (3, 4), 'CONTENT_TYPE': 'text/xml', 'mod_wsgi.application_group': '', 'mod_wsgi.script_reloading': '1', 'wsgi.file_wrapper': <built-in method file_wrapper of mod_wsgi.Adapter object at 0x55a48d3c4be8>, 'HTTP_ACCEPT_ENCODING': 'gzip, deflate', 'UNIQUE_ID': 'WpgW3GEYNMfxj1NderqpEAAAAAQ'}\n start = 1519916764.34\nFrame _wrap_handler in /usr/share/koji-hub/kojixmlrpc.py at line 254\n e = 'users_usertype'\n self = <_mod_wsgi_df1c13776110deb1e020020636703560.ModXMLRPCRequestHandler object at 0x55a48d3c5e50>\n e_class = <type 'exceptions.KeyError'>\n faultCode = 1\n handler = <bound method ModXMLRPCRequestHandler.handle_rpc of <_mod_wsgi_df1c13776110deb1e020020636703560.ModXMLRPCRequestHandler object at 0x55a48d3c5e50>>\n environ = {'mod_wsgi.listener_port': '443', 'CONTEXT_DOCUMENT_ROOT': '/usr/share/koji-hub/kojixmlrpc.py', 'SERVER_SOFTWARE': 'Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips mod_auth_gssapi/1.5.1 mod_wsgi/3.4 Python/2.7.5', 'SCRIPT_NAME': '/kojihub', 'mod_wsgi.enable_sendfile': '0', 'mod_wsgi.handler_script': '', 'SERVER_SIGNATURE': '', 'REQUEST_METHOD': 'POST', 'PATH_INFO': '', 'SERVER_PROTOCOL': 'HTTP/1.1', 'QUERY_STRING': 'session-id=138&session-key=5-AkzpjdJPCTuAL6S7Wnd&callnum=14', 'SSL_TLS_SNI': 'koji.oro.cloud', 'CONTENT_LENGTH': '199', 'HTTP_USER_AGENT': 'koji/1', 'HTTP_CONNECTION': 'keep-alive', 'SERVER_NAME': 'koji.oro.cloud', 'REMOTE_ADDR': '35.192.190.50', 'mod_wsgi.queue_start': '1519916764342413', 'mod_wsgi.request_handler': 'wsgi-script', 'wsgi.url_scheme': 'https', 'mod_wsgi.callable_object': 'application', 'SERVER_PORT': '443', 'wsgi.multiprocess': True, 'mod_wsgi.input_chunked': '0', 'SERVER_ADDR': '10.100.4.3', 'DOCUMENT_ROOT': '/var/www/html', 'mod_wsgi.process_group': '', 'SCRIPT_FILENAME': '/usr/share/koji-hub/kojixmlrpc.py', 'SERVER_ADMIN': 'root@localhost', 'wsgi.input': <mod_wsgi.Input object at 0x7fab36baa5b0>, 'HTTP_HOST': 'koji.oro.cloud', 'CONTEXT_PREFIX': '/kojihub', 'wsgi.multithread': False, 'REQUEST_URI': '/kojihub?session-id=138&session-key=5-AkzpjdJPCTuAL6S7Wnd&callnum=14', 'HTTP_ACCEPT': '*/*', 'wsgi.version': (1, 0), 'GATEWAY_INTERFACE': 'CGI/1.1', 'wsgi.run_once': False, 'wsgi.errors': <mod_wsgi.Log object at 0x55a48d3ce170>, 'REMOTE_PORT': '50954', 'mod_wsgi.listener_host': '', 'REQUEST_SCHEME': 'https', 'mod_wsgi.version': (3, 4), 'CONTENT_TYPE': 'text/xml', 'mod_wsgi.application_group': '', 'mod_wsgi.script_reloading': '1', 'wsgi.file_wrapper': <built-in method file_wrapper of mod_wsgi.Adapter object at 0x55a48d3c4be8>, 'HTTP_ACCEPT_ENCODING': 'gzip, deflate', 'UNIQUE_ID': 'WpgW3GEYNMfxj1NderqpEAAAAAQ'}\n tb_str = Traceback (most recent call last):\n File "/usr/share/koji-hub/kojixmlrpc.py", line 228, in _wrap_handler\n response = handler(environ)\n File "/usr/share/koji-hub/kojixmlrpc.py", line 271, in handle_rpc\n return self._dispatch(method, params)\n File "/usr/share/koji-hub/kojixmlrpc.py", line 308, in _dispatch\n ret = koji.util.call_with_argcheck(func, params, opts)\n File "/usr/lib/python2.7/site-packages/koji/util.py", line 209, in call_with_argcheck\n return func(*args, **kwargs)\n File "/usr/share/koji-hub/kojihub.py", line 12232, in failBuild\n build_notification(task_id, build_id)\n File "/usr/share/koji-hub/kojihub.py", line 7390, in build_notification\n recipients = get_notification_recipients(build, dest_tag, build['state'])\n File "/usr/share/koji-hub/kojihub.py", line 7324, in get_notification_recipients\n emails = [result[0] for result in query.execute()]\n File "/usr/share/koji-hub/kojihub.py", line 7889, in execute\n return _fetchMulti(query, self.values)\n File "/usr/share/koji-hub/kojihub.py", line 4412, in _fetchMulti\n c.execute(query, values)\n File "/usr/lib/python2.7/site-packages/koji/db.py", line 135, in execute\n ret = self.cursor.execute(operation, parameters)\nKeyError: 'users_usertype'\n\n tb_type = extended\nFrame handle_rpc in /usr/share/koji-hub/kojixmlrpc.py at line 271\n environ = {'mod_wsgi.listener_port': '443', 'CONTEXT_DOCUMENT_ROOT': '/usr/share/koji-hub/kojixmlrpc.py', 'SERVER_SOFTWARE': 'Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips mod_auth_gssapi/1.5.1 mod_wsgi/3.4 Python/2.7.5', 'SCRIPT_NAME': '/kojihub', 'mod_wsgi.enable_sendfile': '0', 'mod_wsgi.handler_script': '', 'SERVER_SIGNATURE': '', 'REQUEST_METHOD': 'POST', 'PATH_INFO': '', 'SERVER_PROTOCOL': 'HTTP/1.1', 'QUERY_STRING': 'session-id=138&session-key=5-AkzpjdJPCTuAL6S7Wnd&callnum=14', 'SSL_TLS_SNI': 'koji.oro.cloud', 'CONTENT_LENGTH': '199', 'HTTP_USER_AGENT': 'koji/1', 'HTTP_CONNECTION': 'keep-alive', 'SERVER_NAME': 'koji.oro.cloud', 'REMOTE_ADDR': '35.192.190.50', 'mod_wsgi.queue_start': '1519916764342413', 'mod_wsgi.request_handler': 'wsgi-script', 'wsgi.url_scheme': 'https', 'mod_wsgi.callable_object': 'application', 'SERVER_PORT': '443', 'wsgi.multiprocess': True, 'mod_wsgi.input_chunked': '0', 'SERVER_ADDR': '10.100.4.3', 'DOCUMENT_ROOT': '/var/www/html', 'mod_wsgi.process_group': '', 'SCRIPT_FILENAME': '/usr/share/koji-hub/kojixmlrpc.py', 'SERVER_ADMIN': 'root@localhost', 'wsgi.input': <mod_wsgi.Input object at 0x7fab36baa5b0>, 'HTTP_HOST': 'koji.oro.cloud', 'CONTEXT_PREFIX': '/kojihub', 'wsgi.multithread': False, 'REQUEST_URI': '/kojihub?session-id=138&session-key=5-AkzpjdJPCTuAL6S7Wnd&callnum=14', 'HTTP_ACCEPT': '*/*', 'wsgi.version': (1, 0), 'GATEWAY_INTERFACE': 'CGI/1.1', 'wsgi.run_once': False, 'wsgi.errors': <mod_wsgi.Log object at 0x55a48d3ce170>, 'REMOTE_PORT': '50954', 'mod_wsgi.listener_host': '', 'REQUEST_SCHEME': 'https', 'mod_wsgi.version': (3, 4), 'CONTENT_TYPE': 'text/xml', 'mod_wsgi.application_group': '', 'mod_wsgi.script_reloading': '1', 'wsgi.file_wrapper': <built-in method file_wrapper of mod_wsgi.Adapter object at 0x55a48d3c4be8>, 'HTTP_ACCEPT_ENCODING': 'gzip, deflate', 'UNIQUE_ID': 'WpgW3GEYNMfxj1NderqpEAAAAAQ'}\n self = <_mod_wsgi_df1c13776110deb1e020020636703560.ModXMLRPCRequestHandler object at 0x55a48d3c5e50>\n params = <ERROR WHILE PRINTING VALUE>\n method = host.failBuild\nFrame _dispatch in /usr/share/koji-hub/kojixmlrpc.py at line 308\n self = <_mod_wsgi_df1c13776110deb1e020020636703560.ModXMLRPCRequestHandler object at 0x55a48d3c5e50>\n start = 1519916764.35\n params = <ERROR WHILE PRINTING VALUE>\n func = <bound method HostExports.failBuild of <kojihub.HostExports object at 0x55a48d4796d0>>\n method = host.failBuild\n opts = {}\nFrame call_with_argcheck in /usr/lib/python2.7/site-packages/koji/util.py at line 216\n args = <ERROR WHILE PRINTING VALUE>\n func = <bound method HostExports.failBuild of <kojihub.HostExports object at 0x55a48d4796d0>>\n kwargs = {}\nFrame failBuild in /usr/share/koji-hub/kojihub.py at line 12232\n build_id = 9\n task = <kojihub.Task object at 0x55a48d3c5d10>\n task_id = 48\n st_failed = 3\n self = <kojihub.HostExports object at 0x55a48d4796d0>\n update = UPDATE build\n SET state = %(st_failed)i,\n completion_time = NOW()\n WHERE id = %(build_id)i\n host = <kojihub.Host object at 0x55a48d3c5e10>\n result = {'completion_time': None, 'state': 0}\n query = SELECT state, completion_time\n FROM build\n WHERE id = %(build_id)i\n FOR UPDATE\n buildinfo = {'package_name': 'gd-last', 'extra': None, 'creation_time': datetime.datetime(2018, 3, 1, 15, 3, 1, 912663), 'completion_time': None, 'package_id': 1, 'id': 9, 'build_id': 9, 'epoch': None, 'source': None, 'state': 0, 'version': '2.1.1', 'completion_ts': None, 'owner_id': 4, 'owner_name': 'vdubrovskyi', 'nvr': 'gd-last-2.1.1-1.el7.centos', 'start_time': datetime.datetime(2018, 3, 1, 15, 3, 1, 912663), 'creation_event_id': 95, 'start_ts': 1519916581.91266, 'volume_id': 0, 'creation_ts': 1519916581.91266, 'name': 'gd-last', 'task_id': 48, 'volume_name': 'DEFAULT', 'release': '1.el7.centos'}\nFrame build_notification in /usr/share/koji-hub/kojihub.py at line 7390\n build_id = 9\n dest_tag = 1\n task_id = 48\n web_url = http://koji.oro.cloud/koji%5Cn%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%... build = {'package_name': 'gd-last', 'extra': None, 'creation_time': datetime.datetime(2018, 3, 1, 15, 3, 1, 912663), 'completion_time': datetime.datetime(2018, 3, 1, 15, 6, 4, 347763), 'package_id': 1, 'id': 9, 'build_id': 9, 'epoch': None, 'source': None, 'state': 3, 'version': '2.1.1', 'completion_ts': 1519916764.34776, 'owner_id': 4, 'owner_name': 'vdubrovskyi', 'nvr': 'gd-last-2.1.1-1.el7.centos', 'start_time': datetime.datetime(2018, 3, 1, 15, 3, 1, 912663), 'creation_event_id': 95, 'start_ts': 1519916581.91266, 'volume_id': 0, 'creation_ts': 1519916581.91266, 'name': 'gd-last', 'task_id': 48, 'volume_name': 'DEFAULT', 'release': '1.el7.centos'}\n target = {'name': 'maintenance-2.6', 'build_tag': 2, 'build_tag_name': 'maintenance-2.6-build', 'dest_tag_name': 'maintenance-2.6', 'id': 1, 'dest_tag': 1}\nFrame get_notification_recipients in /usr/share/koji-hub/kojihub.py at line 7324\n users_usertypes = [0, 2]\n state = 3\n tag_id = 1\n users_status = 0\n package_id = 1\n build = {'package_name': 'gd-last', 'extra': None, 'creation_time': datetime.datetime(2018, 3, 1, 15, 3, 1, 912663), 'completion_time': datetime.datetime(2018, 3, 1, 15, 6, 4, 347763), 'package_id': 1, 'id': 9, 'build_id': 9, 'epoch': None, 'source': None, 'state': 3, 'version': '2.1.1', 'completion_ts': 1519916764.34776, 'owner_id': 4, 'owner_name': 'vdubrovskyi', 'nvr': 'gd-last-2.1.1-1.el7.centos', 'start_time': datetime.datetime(2018, 3, 1, 15, 3, 1, 912663), 'creation_event_id': 95, 'start_ts': 1519916581.91266, 'volume_id': 0, 'creation_ts': 1519916581.91266, 'name': 'gd-last', 'task_id': 48, 'volume_name': 'DEFAULT', 'release': '1.el7.centos'}\n joins = ['JOIN users ON build_notifications.user_id = users.id']\n query = \nSELECT email\n FROM build_notifications\n JOIN users ON build_notifications.user_id = users.id\n WHERE (status = %(users_status)i)\n AND (usertype IN %(users_usertype)s)\n AND (package_id = %(package_id)i OR package_id IS NULL)\n AND (tag_id = %(tag_id)i OR tag_id IS NULL)\n AND (success_only = FALSE)\n \n\n \n\n clauses = ['status = %(users_status)i', 'usertype IN %(users_usertype)s', 'package_id = %(package_id)i OR package_id IS NULL', 'tag_id = %(tag_id)i OR tag_id IS NULL', 'success_only = FALSE']\nFrame execute in /usr/share/koji-hub/kojihub.py at line 7889\n query = \nSELECT email\n FROM build_notifications\n JOIN users ON build_notifications.user_id = users.id\n WHERE (status = %(users_status)i)\n AND (usertype IN %(users_usertype)s)\n AND (package_id = %(package_id)i OR package_id IS NULL)\n AND (tag_id = %(tag_id)i OR tag_id IS NULL)\n AND (success_only = FALSE)\n \n\n \n\n self = \nSELECT email\n FROM build_notifications\n JOIN users ON build_notifications.user_id = users.id\n WHERE (status = %(users_status)i)\n AND (usertype IN %(users_usertype)s)\n AND (package_id = %(package_id)i OR package_id IS NULL)\n AND (tag_id = %(tag_id)i OR tag_id IS NULL)\n AND (success_only = FALSE)\n \n\n \n\nFrame _fetchMulti in /usr/share/koji-hub/kojihub.py at line 4412\n query = \nSELECT email\n FROM build_notifications\n JOIN users ON build_notifications.user_id = users.id\n WHERE (status = %(users_status)i)\n AND (usertype IN %(users_usertype)s)\n AND (package_id = %(package_id)i OR package_id IS NULL)\n AND (tag_id = %(tag_id)i OR tag_id IS NULL)\n AND (success_only = FALSE)\n \n\n \n\n c = <cursor object at 0x55a48d4d6bf0; closed: 0>\n values = {'users_usertypes': [0, 2], 'state': 3, 'tag_id': 1, 'users_status': 0, 'package_id': 1, 'build': {'package_name': 'gd-last', 'extra': None, 'creation_time': datetime.datetime(2018, 3, 1, 15, 3, 1, 912663), 'completion_time': datetime.datetime(2018, 3, 1, 15, 6, 4, 347763), 'package_id': 1, 'id': 9, 'build_id': 9, 'epoch': None, 'source': None, 'state': 3, 'version': '2.1.1', 'completion_ts': 1519916764.34776, 'owner_id': 4, 'owner_name': 'vdubrovskyi', 'nvr': 'gd-last-2.1.1-1.el7.centos', 'start_time': datetime.datetime(2018, 3, 1, 15, 3, 1, 912663), 'creation_event_id': 95, 'start_ts': 1519916581.91266, 'volume_id': 0, 'creation_ts': 1519916581.91266, 'name': 'gd-last', 'task_id': 48, 'volume_name': 'DEFAULT', 'release': '1.el7.centos'}, 'joins': ['JOIN users ON build_notifications.user_id = users.id'], 'query': <QueryProcessor: columns=('email',), aliases=None, tables=['build_notifications'], joins=['JOIN users ON build_notifications.user_id = users.id'], clauses=['status = %(users_status)i', 'usertype IN %(users_usertype)s', 'package_id = %(package_id)i OR package_id IS NULL', 'tag_id = %(tag_id)i OR tag_id IS NULL', 'success_only = FALSE'], values={...}, opts={'asList': True}>, 'clauses': ['status = %(users_status)i', 'usertype IN %(users_usertype)s', 'package_id = %(package_id)i OR package_id IS NULL', 'tag_id = %(tag_id)i OR tag_id IS NULL', 'success_only = FALSE']}\nFrame execute in /usr/lib/python2.7/site-packages/koji/db.py at line 138\n debug = True\n start = 1519916764.36\n operation = \nSELECT email\n FROM build_notifications\n JOIN users ON build_notifications.user_id = users.id\n WHERE (status = %(users_status)s)\n AND (usertype IN %(users_usertype)s)\n AND (package_id = %(package_id)s OR package_id IS NULL)\n AND (tag_id = %(tag_id)s OR tag_id IS NULL)\n AND (success_only = FALSE)\n \n\n \n\n self = <cursor object at 0x55a48d4d6bf0; closed: 0>\n parameters = {'users_usertypes': [0, 2], 'state': 3, 'tag_id': 1, 'users_status': 0, 'package_id': 1, 'build': {'package_name': 'gd-last', 'extra': None, 'creation_time': datetime.datetime(2018, 3, 1, 15, 3, 1, 912663), 'completion_time': datetime.datetime(2018, 3, 1, 15, 6, 4, 347763), 'package_id': 1, 'id': 9, 'build_id': 9, 'epoch': None, 'source': None, 'state': 3, 'version': '2.1.1', 'completion_ts': 1519916764.34776, 'owner_id': 4, 'owner_name': 'vdubrovskyi', 'nvr': 'gd-last-2.1.1-1.el7.centos', 'start_time': datetime.datetime(2018, 3, 1, 15, 3, 1, 912663), 'creation_event_id': 95, 'start_ts': 1519916581.91266, 'volume_id': 0, 'creation_ts': 1519916581.91266, 'name': 'gd-last', 'task_id': 48, 'volume_name': 'DEFAULT', 'release': '1.el7.centos'}, 'joins': ['JOIN users ON build_notifications.user_id = users.id'], 'query': <QueryProcessor: columns=('email',), aliases=None, tables=['build_notifications'], joins=['JOIN users ON build_notifications.user_id = users.id'], clauses=['status = %(users_status)i', 'usertype IN %(users_usertype)s', 'package_id = %(package_id)i OR package_id IS NULL', 'tag_id = %(tag_id)i OR tag_id IS NULL', 'success_only = FALSE'], values={...}, opts={'asList': True}>, 'clauses': ['status = %(users_status)i', 'usertype IN %(users_usertype)s', 'package_id = %(package_id)i OR package_id IS NULL', 'tag_id = %(tag_id)i OR tag_id IS NULL', 'success_only = FALSE']}\n'> 0 free 0 open 1 done 1 failed
48 build (maintenance-2.6, gd-last-2.1.1-1.el7.centos.src.rpm) failed
And then necessary remove build manually from DB directly, because it never finish. Help me please. Thank you.
See this: https://pagure.io/koji/issues?status=all&search_pattern=users_usertype
The fix is not in any release yet, but it's simple to apply manually.
Side note to backporters: since sometime before 1.11, every Koji PR is applied as a merge commit (even the ones with single commits), and almost all are rebased first. Have a look at the output of 'git log --oneline --graph' if you haven't. You can also pass --first-parent to log commands to hide the detailed commits of individual PRs.
Some PRs have a single commit, others many. Generally speaking, PRs should be applied as a unit. One easy way to do this is to use the -m option to cherry-pick. E.g.
[mike@localhost koji]$ git cherry-pick -m 1 2f60081 [detached HEAD 5c589753] PR#804: hub: fix KeyError in `get_notification_recipients` Date: Wed Feb 28 08:07:22 2018 -0500 2 files changed, 4 insertions(+), 4 deletions(-)
On Thu, Mar 1, 2018 at 11:56 AM, John Florian john@doubledog.org wrote:
See this: https://pagure.io/koji/issues?status=all&search_pattern=users_usertype
The fix is not in any release yet, but it's simple to apply manually. _______________________________________________ koji-devel mailing list -- koji-devel@lists.fedorahosted.org To unsubscribe send an email to koji-devel-leave@lists.fedorahosted.org
That's very handy to know. Thanks for sharing!
On Thu, 2018-03-01 at 12:28 -0500, Michael McLean wrote:
Side note to backporters: since sometime before 1.11, every Koji PR is applied as a merge commit (even the ones with single commits), and almost all are rebased first. Have a look at the output of 'git log --oneline --graph' if you haven't. You can also pass --first-parent to log commands to hide the detailed commits of individual PRs.
Some PRs have a single commit, others many. Generally speaking, PRs should be applied as a unit. One easy way to do this is to use the -m option to cherry-pick. E.g.
[mike@localhost koji]$ git cherry-pick -m 1 2f60081 [detached HEAD 5c589753] PR#804: hub: fix KeyError in `get_notification_recipients` Date: Wed Feb 28 08:07:22 2018 -0500 2 files changed, 4 insertions(+), 4 deletions(-)
On Thu, Mar 1, 2018 at 11:56 AM, John Florian john@doubledog.org wrote:
See this: https://pagure.io/koji/issues?status=all&search_pattern=users_usert ype
The fix is not in any release yet, but it's simple to apply manually. _______________________________________________ koji-devel mailing list -- koji-devel@lists.fedorahosted.org To unsubscribe send an email to koji-devel-leave@lists.fedorahosted .org
koji-devel mailing list -- koji-devel@lists.fedorahosted.org To unsubscribe send an email to koji-devel-leave@lists.fedorahosted.o rg
koji-devel@lists.fedorahosted.org