Open pjljvandelaar opened 2 years ago
The difference in behaviour might be related to a time out: we got
-- C:\path\to\Dependency_Graph_Extractor-Ada\alire\cache\dependencies\libadalang_22.0.0_5f365aa4\src\libadalang-common.adb --
Encountered Libadalang problem: logic resolution timed out
Id[569:33-569:42]: Text_Type
In the same file on exactly the same start position, so the time-out might hide the bug.
Can I as a user increase the time-out of libadalang? If so, how?
Hi Pierre,
This looks like a quite hard to reproduce issue on our side, could you try to gather more information, by running this under gdb and seeing what exception exactly is being triggered ? TIA
Hi Raphael,
Using a debugger was already a challenge: see https://gt3-prod-1.adacore.com/#/tickets/V420-006
But at least, I was able to get the following details about the exception:
Unhandled exception at 0x00007FFE78F84F69 (KernelBase.dll) in dependency_graph_extractor.exe: 0x20474343 (parameters: 0x0000016B402168A0).
Module Information: Version : 10.0.19041.1645 (WinBuild.160101.0800) orginal location: C:\Windows\System32\KernelBase.dll
Greetings, Pierre
Ok that's not going to help tremendously :) One thing that you should investigate is memory consumption and whether you have enough memory available on this machine, since you only have 7gb available apparently, and if you're analysing a big closure this could be the culprit
Memory usage is around 2 GB, so fortunately not near the available 7 GB.
On the passing PC, I run the complete analysis. It succeeded, had no memory problems.
Analysis made two passes over the code. In both passes, only one time out issue is reported. The location is
-- C:\path\to\Dependency_Graph_Extractor-Ada\alire\cache\dependencies\libadalang_22.0.0_5f365aa4\src\libadalang-common.adb --
Encountered Libadalang problem: logic resolution timed out
Id[569:33-569:42]: Text_Type
For more details, see 2022-04-20-dependency_graph_extractor_output.txt
Dear LibAdaLang developers,
The Dependency Graph Extractor has been moved to alire. We practice what we preach so we want to determine our own dependency graph. Libadalang is one of our dependencies. We observed that libadalang chrashed while analysing itself (
C:\path\to\Dependency_Graph_Extractor-Ada\alire\cache\dependencies\libadalang_22.0.0_5f365aa4\src\libadalang-common.adb
)To reproduce this issue
C:\path\to
git clone https://github.com/TNO/Dependency_Graph_Extractor-Ada.git
C:\path\to\Dependency_Graph_Extractor-Ada
git checkout libadalang_issue
alr build
alr run --args="-o dependency_graph_extractor.graphml -p C:\path\to\Dependency_Graph_Extractor-Ada dependency_graph_extractor.gpr"
This provides the following output: log.txt before the program stops: Debugging yields not much more info:
Looking at the log, we can clearly see that we are inside the function
Get_Referenced_Decl
.yet haven't passed the line
Ada.Text_IO.Put_Line ("After P_Referenced_Decl");
. So the error must be triggered by the declarationReferenced_Decl : constant LAL.Basic_Decl := Name.P_Referenced_Decl;
However, we noticed that the problem does not occur on all windows systems on which we tested this behaviour!
Failing Windows system
About windows
Passing Windows system
About windows
Alire
About alire [installed via https://github.com/alire-project/alire/releases/download/v1.1.2/alr-1.1.2-installer-x86_64-windows.exe]
On failing machine
On passing machine
(Twice option 2 was selected).
Git
About git (on failing machine)
About git (on passing machine)
Hope that you can reproduce and make libadalang even better!
Greetings, Pierre