potiuk commented on issue #30: URL: https://github.com/apache/tooling-releases-client/issues/30#issuecomment-4919008094
BTW piping to jq does not really work in a few cases - because the json output might be sent in "stderr" and it's sometimes mangled wiht non-json messages. Stdout does not work: > atr vote start magpie 0.1.0 00011 \ > -m [email protected] --duration 72 \ > --subject "[VOTE] Release Apache Magpie 0.1.0 from 0.1.0-rc1" | jq > atr: error: Error message from the API: > 500 https://release-test.apache.org/api/vote/start > {"error":"greenlet_spawn has not been called; can't call await_only() here. Was IO attempted in an unexpected place? (Background on this error at: https://sqlalche.me/e/20/xd2s)","exception_type":"MissingGreenlet","request_id":"c40ad6d7-2abe-4feb-a18c-3368c06fd58e","traceback":"Traceback (most recent call last):\n File \"/opt/atr/.venv/lib/python3.14/site-packages/quart/app.py\", line 1500, in full_dispatch_request\n result = await self.dispatch_request(request_context)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/atr/.venv/lib/python3.14/site-packages/quart/app.py\", line 1597, in dispatch_request\n return await self.ensure_async(handler)(**request_.view_args) # type: ignore[return-value]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/atr/atr/blueprints/api.py\", line 250, in checked\n return await inner(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/atr/.venv/lib/python3.14/sit e-packages/quart_schema/validation.py\", line 171, in wrapper\n return await current_app.ensure_async(func)(*args, data=model, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/atr/.venv/lib/python3.14/site-packages/quart_schema/validation.py\", line 210, in wrapper\n result = await current_app.ensure_async(func)(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/atr/atr/blueprints/api.py\", line 96, in wrapper\n result = await handler(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/atr/atr/api/__init__.py\", line 1970, in vote_start\n task = await warm.vote.start(\n ^^^^^^^^^^^^^^^^^^^^^^\n ...<15 lines>...\n )\n ^\n File \"/opt/atr/atr/storage/writers/vote.py\", line 412, in start\n permitted_recipients = util.permitted_podling_first_round_recipients(\n self.__asf_uid,\n ...<2 lines>...\n project=release.project,\n )\n File \"/opt/atr/atr/util.py\", line 1168, in permitted_podling_first_round_recipients\n recipients = permitted_voting_recipients(asf_uid, committee_key, project=project)\n File \"/opt/atr/atr/util.py\", line 1190, in permitted_voting_recipients\n _add_policy_recipients(recipients, project, sql.RecipientAction.VOTE)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/atr/atr/util.py\", line 1710, in _add_policy_recipients\n to, cc, bcc = project.policy_recipients(action)\n ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^\n File \"/opt/atr/atr/models/sql.py\", line 1135, in policy_recipients\n policy = self.release_policy\n ^^^^^^^^^^^^^^^^^^^\n File \"/opt/atr/.venv/lib/python3.14/site-packages/sqlalchemy/orm/attributes.py\", line 569, in __get__\n return self.impl.get(state, dict_) # type: ignore[no-any-return]\n ~~~~~~~~~~~~~^^^^^^^^^^^^^^\n File \"/opt/atr/.venv/lib/python3.14/site-packages/ sqlalchemy/orm/attributes.py\", line 1096, in get\n value = self._fire_loader_callables(state, key, passive)\n File \"/opt/atr/.venv/lib/python3.14/site-packages/sqlalchemy/orm/attributes.py\", line 1131, in _fire_loader_callables\n return self.callable_(state, passive)\n ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^\n File \"/opt/atr/.venv/lib/python3.14/site-packages/sqlalchemy/orm/strategies.py\", line 978, in _load_for_state\n return self._emit_lazyload(\n ~~~~~~~~~~~~~~~~~~~^\n session,\n ^^^^^^^^\n ...<7 lines>...\n execution_options,\n ^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"/opt/atr/.venv/lib/python3.14/site-packages/sqlalchemy/orm/strategies.py\", line 1079, in _emit_lazyload\n return loading.load_on_pk_identity(\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~^\n session,\n ^^^^^^^^\n ...<3 lines>...\n execution_options=execution_options,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"/opt/atr/.venv/lib/python3.14/site-packages/sqlalchemy/orm/loading.py\", line 695, in load_on_pk_identity\n session.execute(\n ~~~~~~~~~~~~~~~^\n q,\n ^^\n ...<2 lines>...\n bind_arguments=bind_arguments,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"/opt/atr/.venv/lib/python3.14/site-packages/sqlalchemy/orm/session.py\", line 2373, in execute\n return self._execute_internal(\n ~~~~~~~~~~~~~~~~~~~~~~^\n statement,\n ^^^^^^^^^^\n ...<4 lines>...\n _add_event=_add_event,\n ^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"/opt/atr/.venv/lib/python3.14/site-packages/sqlalchemy/orm/session.py\", line 2271, in _execute_internal\n result: Result[Any] = compile_state_cls.orm_execute_statement(\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^\n self,\n ^^^^^\n ...<4 lines>...\n conn,\n ^^^^^\n )\n ^\n File \"/opt/atr/.venv/lib/python3.14/site -packages/sqlalchemy/orm/context.py\", line 306, in orm_execute_statement\n result = conn.execute(\n statement, params or {}, execution_options=execution_options\n )\n File \"/opt/atr/.venv/lib/python3.14/site-packages/sqlalchemy/engine/base.py\", line 1421, in execute\n return meth(\n self,\n distilled_parameters,\n execution_options or NO_OPTIONS,\n )\n File \"/opt/atr/.venv/lib/python3.14/site-packages/sqlalchemy/sql/elements.py\", line 526, in _execute_on_connection\n return connection._execute_clauseelement(\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^\n self, distilled_params, execution_options\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"/opt/atr/.venv/lib/python3.14/site-packages/sqlalchemy/engine/base.py\", line 1643, in _execute_clauseelement\n ret = self._execute_context(\n dialect,\n ...<8 lines>...\n cache_hit=cache_hit,\n )\n File \"/opt/atr/.venv/lib/python3.14/ site-packages/sqlalchemy/engine/base.py\", line 1848, in _execute_context\n return self._exec_single_context(\n ~~~~~~~~~~~~~~~~~~~~~~~~~^\n dialect, context, statement, parameters\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"/opt/atr/.venv/lib/python3.14/site-packages/sqlalchemy/engine/base.py\", line 1988, in _exec_single_context\n self._handle_dbapi_exception(\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^\n e, str_statement, effective_parameters, cursor, context\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"/opt/atr/.venv/lib/python3.14/site-packages/sqlalchemy/engine/base.py\", line 2368, in _handle_dbapi_exception\n raise exc_info[1].with_traceback(exc_info[2])\n File \"/opt/atr/.venv/lib/python3.14/site-packages/sqlalchemy/engine/base.py\", line 1969, in _exec_single_context\n self.dialect.do_execute(\n ~~~~~~~~~~~~~~~~~~~~~~~^\n cursor, str_statement, effective_parameter s, context\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"/opt/atr/.venv/lib/python3.14/site-packages/sqlalchemy/engine/default.py\", line 952, in do_execute\n cursor.execute(statement, parameters)\n ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/atr/.venv/lib/python3.14/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py\", line 183, in execute\n self._adapt_connection._handle_exception(error)\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^\n File \"/opt/atr/.venv/lib/python3.14/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py\", line 343, in _handle_exception\n raise error\n File \"/opt/atr/.venv/lib/python3.14/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py\", line 160, in execute\n _cursor: AsyncIODBAPICursor = self.await_(self._connection.cursor()) # type: ignore[arg-type] # noqa: E501\n ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/atr/.venv/lib/python3.14/ site-packages/sqlalchemy/util/_concurrency_py3k.py\", line 123, in await_only\n raise exc.MissingGreenlet(\n ...<2 lines>...\n )\nsqlalchemy.exc.MissingGreenlet: greenlet_spawn has not been called; can't call await_only() here. Was IO attempted in an unexpected place? (Background on this error at: https://sqlalche.me/e/20/xd2s)\n"} Stderr is not parseable JSON: ``` atr vote start magpie 0.1.0 00011 \ -m [email protected] --duration 72 \ --subject "[VOTE] Release Apache Magpie 0.1.0 from 0.1.0-rc1" 2>&1| jq jq: parse error: Invalid numeric literal at line 1, column 4 ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
