Document Service issueshttps://gitlab.prozorro.sale/prozorro-sale/document-service/-/issues2022-11-29T14:30:53+02:00https://gitlab.prozorro.sale/prozorro-sale/document-service/-/issues/59Ошибка при загрузке документов с помошью curl.exe2022-11-29T14:30:53+02:00Pavel KuzmenkoОшибка при загрузке документов с помошью curl.exeНа Linux ошибки нет
```
curl --location --request PUT 'https://procedure.prozorro.sale/api/documents/public?documentType=contractSigned' \
--header 'Authorization: 69d1b914-76af-4616-9776-999999' \
--header 'Content-Type: multipart/form-...На Linux ошибки нет
```
curl --location --request PUT 'https://procedure.prozorro.sale/api/documents/public?documentType=contractSigned' \
--header 'Authorization: 69d1b914-76af-4616-9776-999999' \
--header 'Content-Type: multipart/form-data' \
--form 'file=@"/home/kuzmenko-pavel/Рабочий стол/договір оренди.PDF"'
```
На windows ошибка
```
curl.exe --location --request PUT 'https://procedure.prozorro.sale/api/documents/public?documentType=contractSigned'
--header 'Authorization: 69d1b914-76af-4616-9776-999999'
--header 'Content-Type: multipart/form-data'
--form 'file=@"D:\doclan\fgv\documents\2022\договр оренди.PDF"'
```
```
[2022-05-04T13:27:12.390Z] | prozorro_sale.tools.errors | ERROR - Unknown error caught in API - S3Storage.upload: 'Header' object has no attribute 'split' | X-Request-ID: a5bcd16af3e326ee3b5e7e927268580f
Traceback (most recent call last):
File "/document_service/prozorro_sale/document_service/errors.py", line 128, in wrapper
return await func(*args, **kwargs)
File "/document_service/prozorro_sale/document_service/storages/s3_storage.py", line 73, in upload
await client.put_object(
File "/usr/local/lib/python3.9/site-packages/aiobotocore/client.py", line 173, in _make_api_call
http, parsed_response = await self._make_request(
File "/usr/local/lib/python3.9/site-packages/aiobotocore/client.py", line 193, in _make_request
return await self._endpoint.make_request(operation_model, request_dict)
File "/usr/local/lib/python3.9/site-packages/aiobotocore/endpoint.py", line 77, in _send_request
request = await self.create_request(request_dict, operation_model)
File "/usr/local/lib/python3.9/site-packages/aiobotocore/endpoint.py", line 70, in create_request
await self._event_emitter.emit(event_name, request=request,
File "/usr/local/lib/python3.9/site-packages/aiobotocore/hooks.py", line 27, in _emit
response = await handler(**kwargs)
File "/usr/local/lib/python3.9/site-packages/aiobotocore/signers.py", line 16, in handler
return await self.sign(operation_name, request)
File "/usr/local/lib/python3.9/site-packages/aiobotocore/signers.py", line 63, in sign
auth.add_auth(request)
File "/usr/local/lib/python3.9/site-packages/botocore/auth.py", line 384, in add_auth
canonical_request = self.canonical_request(request)
File "/usr/local/lib/python3.9/site-packages/botocore/auth.py", line 326, in canonical_request
cr.append(self.canonical_headers(headers_to_sign) + '\n')
File "/usr/local/lib/python3.9/site-packages/botocore/auth.py", line 268, in canonical_headers
value = ','.join(self._header_value(v) for v in
File "/usr/local/lib/python3.9/site-packages/botocore/auth.py", line 268, in <genexpr>
value = ','.join(self._header_value(v) for v in
File "/usr/local/lib/python3.9/site-packages/botocore/auth.py", line 279, in _header_value
return ' '.join(value.split())
AttributeError: 'Header' object has no attribute 'split'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/prozorro_sale/tools/errors.py", line 48, in handler
return await func(request, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/prozorro_sale/tools/errors.py", line 108, in _catch_error_middleware
return await handler(request, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/prozorro_sale/auth/__init__.py", line 123, in context_middleware
return await handler(request)
File "/usr/local/lib/python3.9/site-packages/prozorro_sale/auth/__init__.py", line 143, in handler
return await func(request, *args, **kwargs)
File "/document_service/prozorro_sale/document_service/api/api.py", line 38, in upload_document
document_data = await request.app.storage.upload(scope, doc_type, request)
File "/document_service/prozorro_sale/document_service/errors.py", line 152, in wrapper
raise error.__class__(f'{func.__qualname__}: {error}')
AttributeError: S3Storage.upload: 'Header' object has no attribute 'split'
```v3.50.0https://gitlab.prozorro.sale/prozorro-sale/document-service/-/issues/60Add metrics2022-07-29T11:24:32+03:00dmitry.mashoshinAdd metrics- file upload request speed
- file download request speed
- file metadata request speed
- number of active connections- file upload request speed
- file download request speed
- file metadata request speed
- number of active connectionsv3.55.0Viacheslav SukhovieievViacheslav Sukhovieievhttps://gitlab.prozorro.sale/prozorro-sale/document-service/-/issues/48Task exception was never retrieved2022-01-13T18:03:29+02:00Olga KochubynskaTask exception was never retrieved16\.11. 20:38 appeared traceback with 504 error on haproxy
```
[2021-11-16T17:38:38.932Z] | asyncio | ERROR - Task exception was never retrieved
future: <Task finished name='Task-2' coro=<critical.<locals>.wrapper() done, defined at /do...16\.11. 20:38 appeared traceback with 504 error on haproxy
```
[2021-11-16T17:38:38.932Z] | asyncio | ERROR - Task exception was never retrieved
future: <Task finished name='Task-2' coro=<critical.<locals>.wrapper() done, defined at /document_service/prozorro_sale/document_service/utils.py:61> exception=SystemExit(1)> | X-Request-ID: unknown
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 969, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs) # type: ignore # noqa
File "uvloop/loop.pyx", line 2062, in create_connection
File "uvloop/loop.pyx", line 2057, in uvloop.loop.Loop.create_connection
ConnectionAbortedError: SSL handshake is taking longer than 60.0 seconds: aborting the connection
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/document_service/prozorro_sale/document_service/utils.py", line 63, in wrapper
return await func(*args, **kwargs)
File "/document_service/prozorro_sale/document_service/storages/swift_storage.py", line 93, in refresh_token
resp = await session.post(self._auth_url, json=auth_data, ssl=False)
File "/usr/local/lib/python3.9/site-packages/aiohttp/client.py", line 520, in _request
conn = await self._connector.connect(
File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 535, in connect
proto = await self._create_connection(req, traces, timeout)
File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 892, in _create_connection
_, proto = await self._create_direct_connection(req, traces, timeout)
File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 1051, in _create_direct_connection
raise last_exc
File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 1020, in _create_direct_connection
transp, proto = await self._wrap_create_connection(
File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 975, in _wrap_create_connection
raise client_error(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host swift-auth:443 ssl:False [None]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "uvloop/loop.pyx", line 467, in uvloop.loop.Loop._on_idle
File "uvloop/cbhandles.pyx", line 83, in uvloop.loop.Handle._run
File "uvloop/cbhandles.pyx", line 61, in uvloop.loop.Handle._run
File "/document_service/prozorro_sale/document_service/utils.py", line 66, in wrapper
sys.exit(1)
SystemExit: 1
```v3.43.0dmitry.mashoshindmitry.mashoshinhttps://gitlab.prozorro.sale/prozorro-sale/document-service/-/issues/18Implement normal error message2020-05-08T15:21:54+03:00Andrey VeltischevImplement normal error message```
Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/aiohttp/web_protocol.py", line 418, in start
resp = await task
File "/usr/local/lib/python3.8/site-packages/aiohttp/web_ap...```
Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/aiohttp/web_protocol.py", line 418, in start
resp = await task
File "/usr/local/lib/python3.8/site-packages/aiohttp/web_app.py", line 458, in _handle
resp = await handler(request)
File "/document_service/prozorro_sale/document_service/api.py", line 37, in upload_document
document_data = await request.app.storage.upload(data, scope)
File "/document_service/prozorro_sale/document_service/storages/s3_storage.py", line 30, in upload
content_type = data['Content-Type']
KeyError: 'Content-Type'
```v3.x.xhttps://gitlab.prozorro.sale/prozorro-sale/document-service/-/issues/28Fix documentType field2020-05-06T12:34:54+03:00Dmytro HalinovskyiFix documentType fieldдобрий день,
помітив багу при завантаженні файлів, PUT api/documents/public на сендбокс і стейдж - поле documentType приймається сервером тільки якщо відправляється першим, перед документом, якщо після нього - встановлюється в порожню ст...добрий день,
помітив багу при завантаженні файлів, PUT api/documents/public на сендбокс і стейдж - поле documentType приймається сервером тільки якщо відправляється першим, перед документом, якщо після нього - встановлюється в порожню строку, перевіряв через Postman і запитами з свого бекендуv3.2.3Vitalii FisenkoVitalii Fisenkohttps://gitlab.prozorro.sale/prozorro-sale/document-service/-/issues/16Move get client function to S3 storage cause it creates S3 client2020-03-30T14:22:35+03:00Andrey VeltischevMove get client function to S3 storage cause it creates S3 clientv3.2.0