MerginMaps / MerginMaps/python-api-client

The requested URL was not found on the server (local server)

オープン
#106 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

bug
主要言語
Python
スター
23
フォーク
12
平均マージ
2日 13時間
マージ済み PR(30日)
7

説明

During pushing new changes on the project, there is an error, when using server on localhost. So it have probably something with virtual environment.

Error: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.

https://user-images.githubusercontent.com/83582181/131321227-ccb3bac6-54d1-49cf-abdc-1966cbf9b9b4.mp4

On the server itself i get this error:

INFO:werkzeug:127.0.0.1 - - [30/Aug/2021 11:48:31] "POST /v1/project/push/User4/ABC HTTP/1.1" 200 -
ERROR:src:Exception on /v1/project/push/finish/24d4c7f1-f330-4a7d-857f-2cb7e2fdb144 [POST]
Traceback (most recent call last):
File "/home/shockwave/.local/share/virtualenvs/server-dyUHr1GY/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "/home/shockwave/.local/share/virtualenvs/server-dyUHr1GY/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/shockwave/.local/share/virtualenvs/server-dyUHr1GY/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/shockwave/.local/share/virtualenvs/server-dyUHr1GY/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/home/shockwave/.local/share/virtualenvs/server-dyUHr1GY/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/home/shockwave/.local/share/virtualenvs/server-dyUHr1GY/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functionsrule.endpoint
File "/home/shockwave/.local/share/virtualenvs/server-dyUHr1GY/lib/python3.8/site-packages/connexion/decorators/decorator.py", line 48, in wrapper
response = function(request)
File "/home/shockwave/.local/share/virtualenvs/server-dyUHr1GY/lib/python3.8/site-packages/connexion/decorators/uri_parsing.py", line 144, in wrapper
response = function(request)
File "/home/shockwave/.local/share/virtualenvs/server-dyUHr1GY/lib/python3.8/site-packages/connexion/decorators/validation.py", line 384, in wrapper
return function(request)
File "/home/shockwave/.local/share/virtualenvs/server-dyUHr1GY/lib/python3.8/site-packages/connexion/decorators/response.py", line 103, in wrapper
response = function(request)
File "/home/shockwave/.local/share/virtualenvs/server-dyUHr1GY/lib/python3.8/site-packages/connexion/decorators/parameter.py", line 121, in wrapper
return function(**kwargs)
File "/home/shockwave/Lutra/mergin_server/mergin/server/src/auth/init.py", line 46, in wrapped_func
return f(*args, **kwargs)
File "/home/shockwave/Lutra/mergin_server/mergin/server/src/controllers/project_controller.py", line 856, in push_finish
move_to_tmp(upload_dir, transaction_id)
File "/home/shockwave/Lutra/mergin_server/mergin/server/src/storages/disk.py", line 95, in move_to_tmp
os.renames(src, temp_path)
File "/usr/lib/python3.8/os.py", line 270, in renames
rename(old, new)
OSError: [Errno 18] Invalid cross-device link: '/home/shockwave/Lutra/mergin_server/mergin/projects/c0/c666c2cb2ddeb22e3d2d67a9a2856c11/tmp/24d4c7f1-f330-4a7d-857f-2cb7e2fdb144' -> '/tmp/24d4c7f1-f330-4a7d-857f-2cb7e2fdb144/c0/c666c2cb2ddeb22e3d2d67a9a2856c11/tmp/24d4c7f1-f330-4a7d-857f-2cb7e2fdb144'

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

mergin/server/src/storages/disk.py の move_to_tmp から始め、次に mergin/server/src/controllers/project_controller.py の push_finish 付近を調べます。ローカルプロジェクトの push を再現し、os.renames を通る traceback を追跡します。push-finish リクエストで報告されているクロスデバイスリンクエラーが発生しなくなり、期待されるレスポンスが返されれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
flask, python
領域
api, backend
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。