openSUSE / openSUSE-release-tools

Tools to aid in staging and release work for openSUSE/SUSE
GNU General Public License v2.0
61 stars 96 forks source link

factory dashboard no longer shows 'published' version #2850

Closed DimStar77 closed 2 years ago

DimStar77 commented 2 years ago

For 'published', we only see n.a

image

DimStar77 commented 2 years ago

That info should be coming from the attribute OSRT:ToTestManagerStatus, but in openSUSE:Factory that currently is:

failed: '20220830'
testing: '20220830'

There is no published entry there.

coolo commented 2 years ago

It disappeared very recently though: https://github.com/bmwiedemann/openSUSE/commit/d62b4273863d78725768bf8f62a00cd2ed699286#diff-5b2127f002175b7eb280966ee0b9c83296b60049560aeb3c13ca3f616a33928aL489

DimStar77 commented 2 years ago

That seems almost like a race between ttm and a check-in round (?) - otherwise it was staging accept messing up on its own

coolo commented 2 years ago

Hmm, looking at log -M openSUSE:Factory, totest-manager commits every 15 minutes

coolo commented 2 years ago

Note that @bmwiedemann only updates the git twice a day (at 12:50 and 18:50 we see commits) - but there are ~100 commits a day

coolo commented 2 years ago

73005 killed it:

r73005 | totest-manager | 2022-08-31 13:30:17 | 02d70af6c063685503759b2d26b07d55 | None | 

<no message>
----------------------------------------------------------------------------
r73004 | totest-manager | 2022-08-31 13:15:27 | a7f09ecf2ef99536c17b4f4e26fe6fe7 | None | 

<no message>

@@ -485,10 +485,7 @@
 set_snapshot_number: True</value>
   </attribute>
   <attribute namespace="OSRT" name="ToTestManagerStatus">
-    <value>failed: '20220830'
-published: '20220829'
-publishing: '20220829'
-testing: '20220830'
+    <value>testing: '20220830'
 </value>
   </attribute>```
coolo commented 2 years ago

So this should be this TTM run:

[script-executor] -------------------------
install -D /home/go/config/openqa-client.conf /home/go/.config/openqa/client.conf
scripts/totest-manager.py -A https://api.opensuse.org --debug run openSUSE:Factory
[script-executor] -------------------------
[script-executor] Script Type: bash
[script-executor] Script written into '/go/pipelines/TTM.Factory/fd81a302-5373-48af-9b41-06004d229cd5.sh'.
Traceback (most recent call last):
  File "/godata/pipelines/TTM.Factory/scripts/totest-manager.py", line 8, in <module>
    sys.exit(app.main())
  File "/usr/lib/python3.10/site-packages/cmdln.py", line 261, in main
    return self.cmd(args)
  File "/usr/lib/python3.10/site-packages/cmdln.py", line 284, in cmd
    retval = self.onecmd(argv)
  File "/usr/lib/python3.10/site-packages/cmdln.py", line 422, in onecmd
    return self._dispatch_cmd(handler, argv)
  File "/usr/lib/python3.10/site-packages/cmdln.py", line 1123, in _dispatch_cmd
    return handler(argv[0], opts, *args)
  File "/godata/pipelines/TTM.Factory/scripts/ttm/cli.py", line 66, in do_run
    if ToTestPublisher(self.tool).publish(project) == QAResult.passed:
  File "/godata/pipelines/TTM.Factory/scripts/ttm/publisher.py", line 167, in publish
    self.update_status('testing', self.version_from_totest_project())
  File "/godata/pipelines/TTM.Factory/scripts/ttm/manager.py", line 120, in update_status
    self.api.attribute_value_save('ToTestManagerStatus', text)
  File "/godata/pipelines/TTM.Factory/scripts/osclib/stagingapi.py", line 1250, in attribute_value_save
    return attribute_value_save(self.apiurl, self.project, name, value)
  File "/godata/pipelines/TTM.Factory/scripts/osclib/core.py", line 463, in attribute_value_save
    raise e
  File "/godata/pipelines/TTM.Factory/scripts/osclib/core.py", line 459, in attribute_value_save
    http_POST(url, data=ET.tostring(root))
  File "/usr/lib/python3.10/site-packages/osc/core.py", line 3461, in http_POST
    def http_POST(*args, **kwargs):   return http_request('POST', *args, **kwargs)
  File "/godata/pipelines/TTM.Factory/scripts/osclib/cache.py", line 36, in http_request
    ret = osc.core._http_request(method, url, headers, data, file)
  File "/usr/lib/python3.10/site-packages/osc/core.py", line 3451, in http_request
    return urlopen(req)
  File "/usr/lib64/python3.10/urllib/request.py", line 216, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib64/python3.10/urllib/request.py", line 525, in open
    response = meth(req, response)
  File "/usr/lib64/python3.10/urllib/request.py", line 634, in http_response
    response = self.parent.error(
  File "/usr/lib64/python3.10/urllib/request.py", line 563, in error
    return self._call_chain(*args)
  File "/usr/lib64/python3.10/urllib/request.py", line 496, in _call_chain
    result = func(*args)
  File "/usr/lib64/python3.10/urllib/request.py", line 643, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 500: Internal Server Error
[script-executor] Script completed with exit code: 1.

This greatly correlates with the timing of https://github.com/openSUSE/open-build-service/issues/13018

coolo commented 2 years ago

So restore the yaml manually (or wait and see), but to me the code looks fine - the snapshots are only updated when they change. So it looks like an OBS internal bug that will be hard to pin down.