We switched to Java 21 virtual threads and got a deadlock in TPC-C for Postgres
1–10 of 253 posts
Re: We switched to Java 21 virtual threads and got a deadlock in TPC-C for Postgres
#2The deadlock was a usage error.
A better title would be: Naively switching to Java virtual threads caused a deadlock in TPC-C for Progress SQL.
Re: We switched to Java 21 virtual threads and got a deadlock in TPC-C for Postgres
#3Re: We switched to Java 21 virtual threads and got a deadlock in TPC-C for Postgres
#4Re: We switched to Java 21 virtual threads and got a deadlock in TPC-C for Postgres
#5Java virtual threads did not cause a deadlock here. The deadlock was a usage error. A better title would be: Naively switching to Java virtual threads caused a deadlock in TPC-C for Progress SQL.
Re: We switched to Java 21 virtual threads and got a deadlock in TPC-C for Postgres
#6Java virtual threads did not cause a deadlock here. The deadlock was a usage error. A better title would be: Naively switching to Java virtual threads caused a deadlock in TPC-C for Progress SQL.
Re: We switched to Java 21 virtual threads and got a deadlock in TPC-C for Postgres
#7Re: We switched to Java 21 virtual threads and got a deadlock in TPC-C for Postgres
#8Did they get a deadlock again? https://news.ycombinator.com/item?id=38939165
Re: We switched to Java 21 virtual threads and got a deadlock in TPC-C for Postgres
#9Java virtual threads did not cause a deadlock here. The deadlock was a usage error. A better title would be: Naively switching to Java virtual threads caused a deadlock in TPC-C for Progress SQL.
Article won’t load for me. My understanding was that the switch to virtual was supposed to be relatively simple, allowing the programmer to be naive. But a user deadlock is a user deadlock, no matter the threading impl.
My understanding is there is work to make synchronized not pin the carrier thread, but that's some pretty complex and important code to change.