Live data from Hacker News

This Message Does Not Exist

kmjn.org

31–40 of 278 posts

Re: This Message Does Not Exist

#31

Earlier quoted context omitted.

I've seen this happen in Oracle using two phase commit, when the transaction coordinator drops dead before transmitting a commit or rollback decision. The transaction remained in doubt for months before someone noticed. You can ask around and manually coordinate a decision, and tell the databasecwhat you decided.

Oh that's interesting, and probably manifests a bunch of issues related to storage and rollback segments being consumed with the transaction staying open for months. But that's not the same thing as rollback failing (although it is the invocation of rollback failing) as neither rollback nor commit was fully issued and received, so it makes sense that the transaction would stay open (given that the database doesn't ti…

Yeah, the story is a bit incomplete. The full chain was application->transaction master -> 20 or so slave databases. It was a weekly batch dispatching data to the 20 slaves, starting with a full delete of each slave.

Someone decided to literally pull the plug and replace the master database server node from the rack, while the batch was still running. He assumed the other server nodes would pick up where this one left off. So the batch log of the application first complained about the master disappearing, then about the rollback failing on another master node because it wasn't the coordinator and had no idea of this transaction.

It also means the decision about the commit/rollback was irrelevant, as next week's batch run had deleted the records in question. Presumably, some ephemeral records were hanging around, deciding if they were deleted either in week X or week X+1.

Re: This Message Does Not Exist

#33
post #8
post #6

I've had similar philosophical thoughts about a transaction rollback. Consider this definition from go's database/sql package. func (tx *Tx) Rollback() error Rollback can fail, indicated as such by it can return an error. What are the cases where rollback could fail and what's the recovery mechanism? Does a failed rollback mean (logically) that the transaction is still open and uncommitted? But really, invoking rollb…

Obviously, transaction may fail to be rolled back and leave dangling locks. Not sure about the specifics.

I unexpectedly shuddered at the term “dangling locks”

Re: This Message Does Not Exist

#34
post #6

I've had similar philosophical thoughts about a transaction rollback. Consider this definition from go's database/sql package. func (tx *Tx) Rollback() error Rollback can fail, indicated as such by it can return an error. What are the cases where rollback could fail and what's the recovery mechanism? Does a failed rollback mean (logically) that the transaction is still open and uncommitted? But really, invoking rollb…

An example of how a rollback could fail is if the database is accessed over a network and the connection times out due to a networking problem.

Re: This Message Does Not Exist

#35
post #27
post #6

I've had similar philosophical thoughts about a transaction rollback. Consider this definition from go's database/sql package. func (tx *Tx) Rollback() error Rollback can fail, indicated as such by it can return an error. What are the cases where rollback could fail and what's the recovery mechanism? Does a failed rollback mean (logically) that the transaction is still open and uncommitted? But really, invoking rollb…

Pending and rolled back are different transaction states. The former uses resources and locks and can prevent other transactions from happening. Rolling back a transaction twice probably indicates an error in your program, which Go's API is giving you a chance to report to yourself. Ultimately every network request can fail because of the Two Generals' Problem. Actually, every single operation on a computer can fail…

Falsehoods programmers believe:

- Sleep(1) sleeps for exactly 1 second.

- Sleep(1) sleeps for approximately 1 second.

- Sleep(1) sleeps for at least 1 second.

- Sleep(1) sleeps for an unknown, but short amount of time. Certainly not weeks, months or years.

Re: This Message Does Not Exist

#36
Oh, finally a chance to put my Philosophy degree to use!

The error says the "message" does not exist, but the message is not the same as the text. The message is an object that can be saved or discarded, and it contains text.

The text still exists and can be copied, but the message is gone and can't be saved anymore.

Re: This Message Does Not Exist

#39

Oh, finally a chance to put my Philosophy degree to use! The error says the "message" does not exist, but the message is not the same as the text. The message is an object that can be saved or discarded, and it contains text. The text still exists and can be copied, but the message is gone and can't be saved anymore.

[deleted]
Post reply on HN