Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

When you create a record with a field that must be unique, in an open transaction, if connection is lost suddenly, you can not create the same record, until after some time. [CORE4014] #4345

Open
firebird-automations opened this issue Dec 18, 2012 · 4 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: Luis Lince (lflince)

By accessing remotely firebird with an open transaction and create a record, if you lose your Internet connection suddenly, to connect again, attempting to create the record again, it stays locked in the frozen state, I guess waiting for the conclusion the last transaction that was in the air, the problem is there is no way to conclude the transaction, does not even appear in the list of transactions in limbo (gfix-list), this because one of the fields must be unique.

The transaction have this options:

isc_tpb_version3
isc_tpb_write
isc_tpb_read_committed
isc_tpb_rec_version
isc_tpb_wait

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

The former transaction is still considered active, this is why you cannot touch the same record again. That transaction will be rolled back as soon as the engine sees that the client connection is lost, thus allowing further actions with the same records. But the TCP/IP stack does not report a broken connection immediately, hence the issue.

That said, you may decrease the "freeze" time down to the specified amount, via changing either the system TCP keepalive setting (2 hours by default) or DummyPacketInterval setting in firebird.conf (disabled by default).

I don't see it as a bug, sorry.

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

security: Developers [ 10012 ] =>

@firebird-automations
Copy link
Collaborator Author

Commented by: Luis Lince (lflince)

Any suggestions for DummyPacketInterval, in Windows Server 2008. What might be the consequences of activating this feature (more traffic)?
Thanks

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

It's just one TCP packet sent per the specified interval to the every idle client.
I'd suggest to move further discussions to the support list, the tracker is a wrong place for them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant