#4153 dev-data.py setup is failing
Closed: Fixed 5 years ago by pingou. Opened 5 years ago by techtonik.

I fixed imports in https://pagure.io/pagure/pull-request/4152 but there are more issues I am not able to solve. I am running docker-compose setup. Here is the tail of compose log:

worker_1      | 2018-12-29 00:57:11,942 [INFO] celery.app.trace: Task pagure.lib.tasks.update_git[5c33e85f-57a5-408e-ba35-4b56c523edf6] succeeded in 0.1708963359997142s: None
worker_1      | 2018-12-29 00:57:12,020 [INFO] celery.worker.strategy: Received task: pagure.lib.tasks.fork[3e598eaa-4099-40c7-ab3e-ea8feb190c9b]  
worker_1      | 2018-12-29 00:57:12,041 [INFO] pagure.lib.model: Grabbing lock for 19
worker_1      | 2018-12-29 00:57:12,041 [INFO] pagure.lib.model: Grabbing lock for 19
worker_1      | 2018-12-29 00:57:12,063 [INFO] pagure.lib.model: Got lock for 19: <pagure.lib.model.ProjectLock object at 0x7f3a657fbfd0>
worker_1      | 2018-12-29 00:57:12,063 [INFO] pagure.lib.model: Got lock for 19: <pagure.lib.model.ProjectLock object at 0x7f3a657fbfd0>
worker_1      | 2018-12-29 00:57:12,141 [INFO] pagure.lib.git: Remote line: remote: env: ‘python’: No such file or directory
worker_1      | 2018-12-29 00:57:12,141 [INFO] pagure.lib.git: Remote line: remote: env: ‘python’: No such file or directory
worker_1      | 2018-12-29 00:57:12,147 [INFO] pagure.lib.git: Remote line: To /repos/repos/forks/foo/test.git
worker_1      | 2018-12-29 00:57:12,147 [INFO] pagure.lib.git: Remote line: To /repos/repos/forks/foo/test.git
worker_1      | 2018-12-29 00:57:12,147 [INFO] pagure.lib.git: Remote line:  ! [remote rejected] forkedfrom/master -> master (pre-receive hook declined)
worker_1      | 2018-12-29 00:57:12,147 [INFO] pagure.lib.git: Remote line:  ! [remote rejected] forkedfrom/master -> master (pre-receive hook declined)
worker_1      | 2018-12-29 00:57:12,148 [INFO] pagure.lib.git: Remote line: error: failed to push some refs to '/repos/repos/forks/foo/test.git'
worker_1      | 2018-12-29 00:57:12,148 [INFO] pagure.lib.git: Remote line: error: failed to push some refs to '/repos/repos/forks/foo/test.git'
worker_1      | 2018-12-29 00:57:12,148 [INFO] pagure.lib.git: Remote line: 
worker_1      | 2018-12-29 00:57:12,148 [INFO] pagure.lib.git: Remote line: 
worker_1      | 2018-12-29 00:57:12,149 [INFO] pagure.lib.git: Remote rejected with: ['env: ‘python’: No such file or directory']
worker_1      | 2018-12-29 00:57:12,149 [INFO] pagure.lib.git: Remote rejected with: ['env: ‘python’: No such file or directory']
worker_1      | 2018-12-29 00:57:12,151 [INFO] pagure.lib.model: Releasing lock for 19
worker_1      | 2018-12-29 00:57:12,151 [INFO] pagure.lib.model: Releasing lock for 19
worker_1      | 2018-12-29 00:57:12,155 [INFO] pagure.lib.model: Released lock for 19
worker_1      | 2018-12-29 00:57:12,155 [INFO] pagure.lib.model: Released lock for 19
postgresql_1  | 2018-12-29 00:57:12.230 UTC [165] LOG:  unexpected EOF on client connection with an open transaction
worker_1      | 2018-12-29 00:57:12,298 [ERROR] celery.app.trace: Task pagure.lib.tasks.fork[3e598eaa-4099-40c7-ab3e-ea8feb190c9b] raised unexpected: PagurePushDenied('Remote hook declined the push: env: ‘python’: No such file or directory',)
worker_1      | Traceback (most recent call last):
worker_1      |   File "/code/pagure/lib/git.py", line 1072, in push
worker_1      |     env=env,
worker_1      |   File "/usr/lib64/python3.6/subprocess.py", line 336, in check_output
worker_1      |     **kwargs).stdout
worker_1      |   File "/usr/lib64/python3.6/subprocess.py", line 418, in run
worker_1      |     output=stdout, stderr=stderr)
worker_1      | subprocess.CalledProcessError: Command '['git', 'push', 'origin', 'remotes/forkedfrom/master:refs/heads/master']' returned non-zero exit status 1.
worker_1      | 
worker_1      | During handling of the above exception, another exception occurred:
worker_1      | 
worker_1      | Traceback (most recent call last):
worker_1      |   File "/usr/lib/python3.6/site-packages/celery/app/trace.py", line 367, in trace_task
worker_1      |     R = retval = fun(*args, **kwargs)
worker_1      |   File "/usr/lib/python3.6/site-packages/celery/app/trace.py", line 622, in __protected_call__
worker_1      |     return self.run(*args, **kwargs)
worker_1      |   File "/code/pagure/lib/tasks_utils.py", line 36, in decorated_function
worker_1      |     return function(self, session, *args, **kwargs)
worker_1      |   File "/code/pagure/lib/tasks.py", line 491, in fork
worker_1      |     internal_no_hooks="yes",
worker_1      |   File "/code/pagure/lib/git.py", line 1087, in push
worker_1      |     "Remote hook declined the push: %s" % "\n".join(remotes)
worker_1      | pagure.exceptions.PagurePushDenied: Remote hook declined the push: env: ‘python’: No such file or directory

✗ docker-compose -f dev/docker-compose.yml exec worker /usr/bin/env python --version
env: 'python': No such file or directory

???

I had to make hookrunner Python 3 only to fix Celery worker. I don't know other way to make it discover Python 3 without a wrapper script.

diff --git a/pagure/hooks/files/hookrunner b/pagure/hooks/files/hookrunner
index 07086656..34009eeb 100755
--- a/pagure/hooks/files/hookrunner
+++ b/pagure/hooks/files/hookrunner
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 # -*- coding: utf-8 -*-

 """
@@ -9,8 +9,6 @@

 """

-from __future__ import unicode_literals, absolute_import
-
 import os
 import sys
 # The following is only needed if you did not install pagure

-from future import unicode_literals, absolute_import

These two lines are valid python3, no need to remove them :)

But they are defaults, no?

Yes, but the hook also runs with python2 for which they are needed.

With this shebang modification it won't run on Python 2 anymore.

With this shebang modification it won't run on Python 2 anymore.

Correct but the entire pagure code base is compatible with both versions of python :)

I think the PR https://pagure.io/pagure/pull-request/4205 fixed this issue.

So let's close it and re-open this one or another if needed.

Thanks for your report, it is always appreciated :)

Metadata Update from @pingou:
- Issue close_status updated to: Fixed
- Issue status updated to: Closed (was: Open)

5 years ago

Login to comment on this ticket.

Metadata