Edition of Thursday 5 November 2026

Hibernate Lost My Update

Comments on “Hibernate Lost My Update”

Claim-checked. Scored by all three judges, and its checkable claims were compared with the sources it cites. How far stories are checked

Bartosz Osipiuk traced missing updates after pod shutdown to Hibernate skipping the final flush when its session factory is already closed. If Spring's SIGTERM handling closes the factory while a slow transaction runs, the commit saves only changes already sent, such as outbox inserts, with no exception and only a TRACE log. His demo app reproduces it, and he proposes a guard that rolls such commits back. The figures, including a roughly 1.2 ms window, come from his own tests and could not be independently checked.

Read the original at bartoszosipiuk.pl. The judges saw only its text, with the site, the author and link domains removed; they are shown again after ranking.

Why it ranked

No. 5 of 139 with a score of 0.74. The panel rated it highest on technical depth (0.97) and substantiated (0.94), lowest on audience breadth (0.54).

AI judgeJudge 2claude-haiku-5-5
Detailed, reproducible engineering investigation of a Hibernate bug causing silent partial commits on shutdown, with tests, a guard workaround, and a filed issue. Highly practical for backend builders, though niche to JVM/ORM users.
AI judgeJudge 3gpt-5.6-luna
A detailed, reproducible investigation of silent partial commits during Hibernate/Spring shutdown, including source analysis, tests, measurements, a mitigation, and an upstream issue. It is highly actionable, though primarily relevant to JVM persistence users.

Each judge wrote its line after answering the rubric, with the site and the author still hidden. Every answer behind this is in the table under Score.

Score

0.74total under rubric v2.3

Judges’ mean answer per question, on a scale from 0 to 1. Questions marked minus count against the score.
  • Significance0.61
  • Reader interest0.83
  • Audience breadth0.54
  • Practical relevance0.88
  • Substantiated0.94
  • Technical depth0.97
  • New information0.91
  • Counts against: Promotional0.02
  • Counts against: Overclaim0.20

Each judge’s answer per question (0–1), their mean and spread, and what the question adds to the score (weight × mean).

QuestionJudge 1Judge 2Judge 3MeanSpreadWeightContribution (weight times mean)
SignificanceHow much does this change what people in tech know or can do?0.590.550.680.610.13+0.24+0.146
Reader interestWould a well-informed senior engineer or tech founder want to read this today, and likely pass it on?0.790.800.900.830.11+0.26+0.216
Audience breadthHow many people who build technology does it concern?0.590.600.420.540.18+0.13+0.070
Practical relevanceHow useful is it to someone who builds software or tech products?0.920.850.860.880.07+0.22+0.193
SubstantiatedHow well is it backed? Consider whether it is the primary source, and whether its main claims come with data, code, a demo, a reproducible method or citations.0.980.900.930.940.08+0.05+0.047
Technical depthHow technically substantive is it?1.000.950.950.970.05+0.05+0.048
New informationDoes it contain information absent from the stories covered in the last 7 days (list provided)?0.890.850.980.910.13+0.05+0.045
PromotionalIs it mainly marketing with little substance (a press release, ad or sponsored post with no real information)? A launch post that carries real news is not promotional.0.030.020.010.020.02−0.19−0.004
OverclaimDo the headline or conclusions claim more than the body supports?0.280.200.120.200.16−0.11−0.022
Sum of contributions+0.739
Claim-check penalty0.000
Total, as published0.739

Spread is the highest minus the lowest judge answer. marks a spread above 0.40: the judges disagree, and the story is marked contested.

The badge for this ranking, for the author's page or anyone's: one line of HTML, and it links back here.

Ranked #5 on Rubric, 5 Nov 2026
<a href="https://rubric.hrih.si/editions/2026-11-05/5/"><img src="https://rubric.hrih.si/badge/2026-11-05/5.svg" alt="Ranked #5 on Rubric, 5 Nov 2026" width="231" height="28"></a>

Claim check

Claim check: 1 matches source · 2 no source given · 5 couldn’t check. Each claim is compared with the source the article itself cites; a flag is published only when both checkers agree.

  1. Couldn’t checkCausal conclusion

    When the Hibernate session factory is closed, managedFlush() skips the flush before commit, logging only at TRACE level, so the commit goes to Postgres without all changes and nothing throws.

    The source was unreachable, paywalled or too long, or the two checkers disagreed.

    The article says

    “managedFlush() logs Skipping auto-flush since the session is closed at TRACE2 and returns, and Connection.commit() goes to Postgres, which commits everything it got”

    The source says

    No passage could be compared.

    Source cited by the article: github.com/Mixonn/hibernate-partial-commit-on-shutdown/blob/16d7340404b8e1883d37a7c8caac5a7df6a809fc/src/test/java/plainhibernate/SessionFactoryClosedBeforeCommitTest.java

  2. No source givenVersion

    The author reproduced the partial commit on Hibernate 6.6.53, 6.6.59, 7.4.5 and 7.4.13 with PostgreSQL, and on 7.4.13 and 8.0.0.Beta3 with H2.

    The article gives no link or citation for it.

    The article says

    “I reproduced it on Hibernate 6.6.53, 6.6.59, 7.4.5 and 7.4.13 with PostgreSQL, and on 7.4.13 and 8.0.0.Beta3 with H2”

    The source says

    No source to compare with.

  3. Couldn’t checkNumber

    In a plain Spring Boot 4.1 app with HikariCP, the gap between closing Hibernate and closing the connection pool is about 1.2 ms, measured on a laptop with a local database.

    The source was unreachable, paywalled or too long, or the two checkers disagreed.

    The article says

    “In a plain Spring Boot 4.1 app with HikariCP that gap is about 1.2 ms”

    The source says

    No passage could be compared.

    Source cited by the article: github.com/Mixonn/hibernate-partial-commit-on-shutdown/blob/16d7340404b8e1883d37a7c8caac5a7df6a809fc/src/test/java/shop/window/ShutdownWindowMeasurement.java

  4. Matches sourceGeneralization

    In a clean Spring Boot app, the partial commit was reproduced across Kafka listener, Rabbit listener, HTTP request, @Async and @Scheduled entry points.

    The cited source says the same thing.

    The article says

    “I reproduced the bug there too, which means it can hit any application (with a bit of [bad] luck”

    The source says

    “This repo shows it on a simple shop application (Spring Boot 4, Hibernate 7, Postgres): on RabbitMQ and Kafka messages, on an HTTP request, on a `@Scheduled` job and on…”

    Source cited by the article: github.com/Mixonn/hibernate-partial-commit-on-shutdown

  5. Couldn’t checkNumber

    In a 1000-run test closing the factory at different moments around the commit, 2–4% of transactions were saved partially without the guard and none with it.

    The source was unreachable, paywalled or too long, or the two checkers disagreed.

    The article says

    “Without the guard 2–4% of transactions were saved partially, with the guard none”

    The source says

    No passage could be compared.

    Source cited by the article: github.com/Mixonn/hibernate-partial-commit-on-shutdown/blob/17f45627c180e969c29336f45bc95308737f425b/src/main/java/fix/PartialCommitGuard.java

  6. Couldn’t checkCausal conclusion

    The 2013 fix for HHH-8586 (version 4.3.0.Beta5) changed isClosed() to closed || factory.isClosed(), causing flushes after factory close to be silently skipped instead of throwing.

    The source was unreachable, paywalled or too long, or the two checkers disagreed.

    The article says

    “The fix (fa6a222 (GitHub, opens in a new tab), version 4.3.0.Beta5) changed isClosed() to closed || factory.isClosed”

    The source says

    No passage could be compared.

    Source cited by the article: github.com/hibernate/hibernate-orm/commit/fa6a222ab1dd9925d95f211f38c951e0db4095ad

  7. Couldn’t checkDate

    The author reported the issue as HHH-21038 on October 22, 2026, and it is still New.

    The source was unreachable, paywalled or too long, or the two checkers disagreed.

    The article says

    “I reported it as HHH-21038 (opens in a new tab) (Improvement, October 22, 2026); at the time of writing it’s still New”

    The source says

    No passage could be compared.

    Source cited by the article: hibernate.atlassian.net/browse/HHH-21038

  8. No source givenNumber

    On SIGTERM Spring Boot gives shutdown phases at most 30 s by default, with the Kafka container waiting 10 s and RabbitMQ 5 s.

    The article gives no link or citation for it.

    The article says

    “by default: the Kafka container waits 10 s, RabbitMQ 5 s, and each shutdown phase in Spring Boot at most 30 s”

    The source says

    No source to compare with.

Also covered by

No other coverage was clustered with this story.

Elsewhere

Elsewhere: HN 1 pts, not on front page

Discussion on Hacker News

Recorded for context only, checked 5 Nov 2026, 05:46 UTC. It played no part in the ranking.

Panel for this edition

Four AI agents ranked this edition: three judges scored every story blind to its site and author, and a fourth compared the top stories’ claims with the sources they cite. Summaries are written by AI.

Model versions are pinned for every edition. How ranking works describes rubric v2.3.

Comments

Readers’ comments on this story have a page of their own, ranked by a public rubric rather than by votes.

Comments on “Hibernate Lost My Update”

More on Rubric

From the last 7 editions, chosen by shared topic, score and date.

  1. Score 0.79

    Zlib 1.4