I went ahead and made a ticket for this. Locally I made a bandaid fix:
Connection_Manager.First (ID);
while ID /= 0 loop
begin
Close (ID);
Connection_Manager.Next (ID);
exception
when others =>
Connection_Manager.First(ID); -- restart if cursor is deleted early
end;
end loop;
It isn't a good long term solution probably, but I tested it with multiple
connections up and didn't seen any glaring issues. I"m sure it breaks
something though. It can potentially call Close() on the same ID twice, if
the exception occurs a few iterations down the line. I don't know if that
is bad or not. I also don't know if the same fix will work for the
Watchdog version of this bug (the one that pings all the IDs). Starting
over there could be costly?
On Sat, Jun 30, 2018 at 10:58 AM, Jeremiah Breeden <
[email protected]> wrote:
> On both of my work computers (Windows 10 and Ubuntu 16.04, FSF and GPL
> versions of GNAT), I somewhat sporadically am unable to successfully call
> Gnoga.Application.Multi_Connect.End_Application. It generates an error
> message mentioning a failure with the Next procedure and the server
> continues to run. In all cases I am running the same exact code (though
> recompiled for each combination).
>
> I was wondering if this was something others have run into? When I looked
> into the procedure, I found that it called Gnoga.Server.Connection.Stop and
> inside that was the following loop:
>
> Connection_Manager.First (ID);
> while ID /= 0 loop
> Close (ID);
> Connection_Manager.Next (ID);
> end loop;
>
>
> I think what might be happening is that another part of gnoga is closing
> the connection inbetween the calls to Connection_Manager.First and
> Connection_Manager.Next (I see that Gnoga occasionally chooses to switch
> connection IDs for my current connection, though I don't really know why).
> It at least looks like a data race and seems like a plausible reason why
> End_Application stops working.
>
> Anyone have any thoughts on this?
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Gnoga-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gnoga-list