Recent

Author Topic: IBX 2.3.3 and INET errors  (Read 3835 times)

RedOctober

  • Sr. Member
  • ****
  • Posts: 452
Re: IBX 2.3.3 and INET errors
« Reply #15 on: October 28, 2020, 10:36:30 pm »
Hi RVK,

JLD1 never has the problem described, only JLS1 has these errors.  I have been developing on JLD1 for more than 2 years, and never once have any of my Lazarus apps shown this error.   

Yes, I am working locally with the .exe, but my connection string was specifically for an INET port 3050 connection.

The error displayed in Lazarus is "Unable to write to the connection".  In the firebird.log, it lists these as the following:

Quote
JLS1   Sat Oct 24 14:29:33 2020
   INET/inet_error: read errno = 10053, aux server host = JLS1, address = fe80::3862:88ff:3231:1c98%6/51463


JLS1   Sat Oct 24 14:29:33 2020
   INET/inet_error: read errno = 10054, client host = jls1, address = fe80::3862:88ff:3231:1c98%6/51461, user = JOESMITH


JLS1   Sat Oct 24 14:29:33 2020
   INET/inet_error: send errno = 10054, server host = JLS1, address = fe80::3862:88ff:3231:1c98%6/3050

Always in groups of 3 as shown.  Always the same errors shown.

RUBI (Lazarus .exe) is unusable after one of these happens and must be shut down and restarted.  (It sometimes is stuck and will not even respond to a click on the "Close X" top right corner and must be End Task'd) These errors appear on JLS1 using RUBI after anywhere from 1 second, to about 40 seconds of use.  On JLD1,(server without the problem) Windows Defender has been shut off for Firebird's .exe, and .fbk and .fdb, but not for RUBI .exe.  On JLS1, (server with the problem) Windows Defender virus checker has been shut off for Firebird's .exe, Firebirds' folder, RUBI's .exe.

Difference:   Only on JLS1 there are legacy .exe's running that access a different Firebird database, using Delphi and TIBCConnection and other TIB Query components.  On JLD1, those same components are present and in Delphi, but the Delphi apps are not running.

Let me know if you need any more info.  I am happy to "help you help me".


rvk

  • Hero Member
  • *****
  • Posts: 6111
Re: IBX 2.3.3 and INET errors
« Reply #16 on: October 28, 2020, 10:53:09 pm »
Is it always preceded by the 10053 error? (Was that mentioned before?)
Does JLD1 also have these in the logs?

WSAECONNABORTED
(10053)
Software caused connection abort.
An established connection was aborted by the software in your host machine, possibly due to a data transmission time-out or protocol error.

WSAECONNRESET
(10054)
Connection reset by peer.
An existing connection was forcibly closed by the remote host. This normally results if the peer application on the remote host is suddenly stopped, the host is rebooted, or the remote host uses a hard close (see setsockopt for more information on the SO_LINGER option on the remote socket.) This error may also result if a connection was broken due to keep-alive activity detecting a failure while one or more operations are in progress. Operations that were in progress fail with WSAENETRESET. Subsequent operations fail with WSAECONNRESET.

RedOctober

  • Sr. Member
  • ****
  • Posts: 452
Re: IBX 2.3.3 and INET errors
« Reply #17 on: October 28, 2020, 11:03:54 pm »
Quote
Is it always preceded by the 10053 error?

Yes, always.

Quote
(Was that mentioned before?)

Just looking at the thread.. no.

Quote
Does JLD1 also have these in the logs?

No.  This error has never occured on JLD1.  There is no listing of either 10053 or 10054 errors in the firebird.log





rvk

  • Hero Member
  • *****
  • Posts: 6111
Re: IBX 2.3.3 and INET errors
« Reply #18 on: October 28, 2020, 11:26:48 pm »
Can you switch easily to using IPv4 just to check if that helps?
Using 192.x.x.x:3050/path_to_db as connection string.
Or inet4://C:\path\db.fdb

Are you working with threads or not?

RedOctober

  • Sr. Member
  • ****
  • Posts: 452
Re: IBX 2.3.3 and INET errors
« Reply #19 on: October 29, 2020, 03:01:48 am »
I am not working with threads.  I have enough trouble getting one thread to work reliably.  I will try the IPv4.

zoltanleo

  • Sr. Member
  • ****
  • Posts: 486
Re: IBX 2.3.3 and INET errors
« Reply #20 on: October 29, 2020, 09:20:09 am »
Hi RedOctober.

Try connecting via isql using your connection string. What do you get?
Win10 LTSC x64/Deb 11 amd64(gtk2/qt5)/Darwin Cocoa (Monterey):
Lazarus x32/x64 2.3(trunk); FPC 3.3.1 (trunk), FireBird 3.0.10; IBX by TonyW

Sorry for my bad English, I'm using translator ;)

RedOctober

  • Sr. Member
  • ****
  • Posts: 452
Re: IBX 2.3.3 and INET errors
« Reply #21 on: October 29, 2020, 03:55:15 pm »
Hi ZoltanLeo, ISQL connects, using the connection string I used for RUBI (the "local" one that allows me to connect without a password, which is just the alias by itself... RUBI).  It doesn't indicate what protocol it (ISQL) used to connect, and I cannot find an ISQL command that would display this to me.

rvk

  • Hero Member
  • *****
  • Posts: 6111
Re: IBX 2.3.3 and INET errors
« Reply #22 on: October 29, 2020, 05:25:47 pm »
It doesn't indicate what protocol it (ISQL) used to connect, and I cannot find an ISQL command that would display this to me.
Code: SQL  [Select][+][-]
  1. SELECT * FROM MON$ATTACHMENTS
This will give you the connections.
In MON$REMOTE_PROTOCOL you'll see TCPv4 with IP MON$REMOTE_ADDRESS or something else.

RedOctober

  • Sr. Member
  • ****
  • Posts: 452
Re: IBX 2.3.3 and INET errors
« Reply #23 on: October 29, 2020, 09:55:23 pm »
Regarding ISQL:  SELECT MON$REMOTE_PROTOCOL, MON$REMOTE_ADDRESS FROM MON$ATTACHEMENTS;

Result:   Both fields show a value of <null>  so I still don't know what protocol I'm attached with (I have connected to the database using the alias RUBI, and that alias is designated as the Drive:/Path/RUBI.fdb in databases.conf file. (so, a "Local" connection)

Regarding the "Unable to write to connection" error:  Using a test utility, I was able to recreate the INET error using a remote connection string.  When I switched to a Local connection string, (which I assume is XNET) the error went away.  So in the test utility, I was able to rapidly do rollback/start transaction operations from three TIBXTransactions 10,000 times without error.  (so, a total of 30,000 ops) Using the remote INET connection, it wd fail after anywhere from 1 to 500 "rollback/start transaction" operations of a transaction.


The error in my RUBI app only and always happened during rapid rollback/start transaction operations, and only on JLS1 (the production server) and never on JLD1 (the development server).


rvk

  • Hero Member
  • *****
  • Posts: 6111
Re: IBX 2.3.3 and INET errors
« Reply #24 on: October 29, 2020, 10:21:09 pm »
Did you try IPv4 yet?

RedOctober

  • Sr. Member
  • ****
  • Posts: 452
Re: IBX 2.3.3 and INET errors
« Reply #25 on: October 29, 2020, 11:35:55 pm »
Hi RVK.

Using the "Remote" connection string with IPv4 protocol specified:  inet4://JLS1:3050/RUBI

Result: 30,000 cycles, zero errors.

We can now conclude that the problem is localized to a Remote connection string that "allows" the use of IPv6, and only on JLS1.

Thank you all for your kind attention to this matter.  I now have a way forward.

rvk

  • Hero Member
  • *****
  • Posts: 6111
Re: IBX 2.3.3 and INET errors
« Reply #26 on: October 29, 2020, 11:42:59 pm »
Great.

You can check on JLD1 with SELECT * FROM MON$ATTACHMENTS if the connection is defaulted to IPv4 or IPv6. Maybe it's IPv4 there and then either Firebird or IBX has problems with IPv6.

If JLD1 also is on IPv6 then it's still a mystery but you can go foward with IPv4.

RedOctober

  • Sr. Member
  • ****
  • Posts: 452
Re: IBX 2.3.3 and INET errors
« Reply #27 on: October 29, 2020, 11:48:06 pm »
I have to go with the "mystery" option RVK.  JLD1 has always been in IPv6 (for sure) for the full 2 years of development, and never once has thrown a "Unable to write to the connection" error.

 

TinyPortal © 2005-2018