One corrupt build blob (after disk full) makes other blobs return wrong data; SSO login disappears
#3180
-
You have to restore the database from a backup. For production use, please switch to use external database.
| Type |
Bug
|
| Priority |
Normal
|
| Assignee | |
| Affected Versions |
16.8.7
|
| Labels |
No labels
|
Issue Votes (0)
Environment: OneDev 16.8.7, embedded HSQLDB 2.7.1 (
LOB COMPRESSED TRUE), Temurin JDK 21, Debian LXC. (Proxmox CT)What happened:
DefaultJobService Error checking unfinished builds: java.lang.ClassCastException: Cannot cast java.util.ArrayList to java.util.LinkedHashMapGeneralErrorPage Error processing wicket request: java.lang.ClassCastException: Cannot cast java.util.ArrayList to io.onedev.server.model.support.administration.sso.SsoConnectorAnalysis:
OpenIdConnector, byte-identical to a backup), yet at runtime it was returned as anArrayList.Workaround: With the server stopped, I overwrote the corrupt LOB block with a valid one from another build and fixed its
PARTS/LOB_IDSlengths inonedev.script. All errors stopped and SSO login returned.Expected: A corrupt blob on one build should fail only that build (ideally marking it failed), not affect unrelated entities or authentication.