Issue Details (XML | Word | Printable)

Key: CORE-6036
Type: Improvement Improvement
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Carlos H. Cantu
Votes: 1
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
Firebird Core

Adjust comment of DummyPacketInterval in fb.conf

Created: 27/Mar/19 05:23 PM   Updated: 30/Jun/20 07:26 AM
Component/s: Engine
Affects Version/s: 3.0.3, 3.0.4, 4.0 Beta 1
Fix Version/s: None

QA Status: No test


 Description  « Hide
# NOTE. This option may hang or crash Windows NT4 or Windows 2000 pre SP3
# on the client side as explained here:
# http://support.microsoft.com/default.aspx?kbid=296265.
# or may not prevent eventual inactive client disconnection for other OS.

Firebird 3 can't run on Windows NT and Windows 2000 (MSVC 10 is not support in those Windows versions), so it doesn't make sense to have such comment in fb.conf. Please remove it for the next releases/subreleases.

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Adriano dos Santos Fernandes added a comment - 13/May/19 03:16 PM
The options seems to say that if server has this option, it could crash clients running in Windows NT4 or Windows 2000 pre SP3.

Clients (for example Jaybird) may run on that OS then the server option comment may be relevant.

Can anyone confirm?

Carlos H. Cantu added a comment - 13/May/19 04:53 PM
I'm not a Java guy, but seems that Java 7 and 8 cannot run in Windows NT or Win2K either: https://www.java.com/en/download/help/sysreq.xml

Adriano dos Santos Fernandes added a comment - 13/May/19 07:57 PM - edited
But I think it doesn't matter. You can substitute Java+Jaybird with a C application reimplementing the protocol, or a old client working in these OS.

Didn't the same thing is still valid? A server config. may crash the client?

Carlos H. Cantu added a comment - 13/May/19 09:15 PM
Well, I will only comment based on my experience: I have this setting enabled in several customers, for years, and never had the described problem. In the other side, I see several people suffering with "ghost connections" (specially when they use WIFI connections) causing stuck OAT and frozen GC. That comment usually frights the DBA, who prefers to not touch the setting.

Dmitry Yemanov added a comment - 15/May/19 05:35 AM
IIRC, the issue is the following. Server regularly pings the client with op_dummy packets. The client doesn't wait for them explicitly, they're processed when the client has something to send to the server. If the client is idle, dummy packets are collected inside the TCP stack incoming buffer, which (at least in older Windows versions) is located in the non-paged kernel memory. If the client is longly idle (app is left open for the weekend, for example) it may lead to either client crash or error (system memory overflow) thrown for the connection.

Personally, I think this comment sounds more dangerious than the issue actually is. It may be a PITA for application servers and other n-tier architectures, but surely not the end of the world for regular client connections. I always recommend to turn this option on.

Carlos H. Cantu added a comment - 19/May/19 02:49 PM
So, I suggest to enable this option by default in the next releases of Firebird. How many NT or Win2K (pre SP3) installs are out there nowadays? Probably a very small number, so it makes much more sense to have it enabled to bring its benefits for the majority of the users, and let the dinosaurs disable it if they need to.

Stefan Heymann added a comment - 30/Jun/20 07:26 AM
As we have talked on the Firebird Conference in Berlin 2019: This comment in firebird.conf is outdated and might lead people to not using this (important) feature. We should remove that comment. Or at least add something that it is safe to use from Windows 2003 on.

I also support the idea of setting this to 60 or 120 by default.