FabricCore is not closing...

craouettecraouette Posts: 113

Hi,

Compiling with A3d with 2.2 gave the following problem: The application is not ending at all!! all windows are closed, but the process is still there. Launching VC12 debug on it gives:

The CloseGraph() Line 1243 is the line after: "exit(0);"
I don't know what I do wrong, but it was working as expected on 2.1.
any idea?

Pierre

Comments

  • craouettecraouette Posts: 113

    before ending, the callback setSlowOperationFunc is called with the message "Compiling core interfaces"... and then it get stuck in the stack of the previous picture....
    may be a problem of cashed compiled Ext?
    I tried to wait before closing so that the compilation can be complete, but even after one hour, I have the same result.

  • andrewmacpandrewmacp Fabric Employee Posts: 7 Fabric Employee

    Hi Pierre,

    There were some changes in 2.2 around startup time improvement that could be affecting the behaviour here, it looks like there is a reference to an RTVal being released in your modeler.exe which is resulting in the call into the Core that hangs. Do you have a local or global static RTVal variable that would be cleaned up when the closeGraph() function calls exit(0)? Have you already destroyed the Core Client at this point? What happens if you explicitly .invalidate() this RTVal before calling exit?

    Let me know and I'll see if we can help track down what's happening here.

    Cheers,
    Andrew

  • craouettecraouette Posts: 113

    I have 2!!
    static FabricCore::RTVal sDrawContext, sEventDispatcher;
    I will try to invalidate them,

    thanks a lot for the answer!!!

  • craouettecraouette Posts: 113

    it worked perfectly!!! thanks

  • andrewmacpandrewmacp Fabric Employee Posts: 7 Fabric Employee

    Great! I've filed FE-6715 for the deadlock issue here but this workaround should allow you to keep going in the meantime.

    Cheers,
    Andrew

  • craouettecraouette Posts: 113

    Adrew,

    I was too quick to answer... it is not working. And I checked, it seems that all bindings are closed with:

      binding.deallocValues();
      binding = FabricCore::DFGBinding();
    

    then I set the host initialised at startup to

    host = FabricCore::DFGHost();

    any idea on what I can do?

    I am still using 2.2.0... I can switch to a daily build if you think that could make a difference.

    cheers,
    Pierre

  • andrewmacpandrewmacp Fabric Employee Posts: 7 Fabric Employee

    Hi Pierre,

    Was this working for awhile and now it's broken again? Is the stack trace for the deadlock the same as the one you provided above? It really looks from that one like it's an undestructed static RTVal that's causing the issue but let me know if you're sure it's not an RTVal and I'll try to think of what else might be happening.

    Thanks,
    Andrew

  • craouettecraouette Posts: 113

    I am not sure what happened... it was working shortly... or I missed it.
    What I suspect is: It was working, then I went on with the port to Fabric 2.2.0... and it became broken again quite rapidly after my positive answer.
    Probably because some of the canvas were loaded again at start time.

    Yes, the stack look exactly the same.
    There is no additional static RTVal (only the 2 mentioned previously), I did a grep to be sure.

    After some tests, I discovered that, If I disable that line (and remove the FABRIC_EXTS_PATH env variable):

    bool b = FabricSplice::addExtFolder(a3dSpliceDFG.extFolders[i]);

    I can close... but then, no extension is loaded as shown in the log:

    [SPLICE DFG LOG] [FABRIC:MT] Fabric Engine version 2.2.0 (May 11 2016 14:56:36 UTC)
    [SPLICE DFG LOG] [FABRIC:MT] Loading DFG presets from C:\.....\FabricEngine-2.2.0-Windows-x86_64\Presets\DFG
    [SPLICE DFG LOG] [FABRIC:MT] Loading DFG presets from C:\Users\.....\Fabric\Presets
    [SPLICE DFG LOG] [FABRIC:MT] IRCache: Not pruning since last prune was less than 24 hours ago
    [SPLICE DFG LOG] loadExtension('Math', '', false): 'Math': extension not found
    [SPLICE DFG LOG] loadExtension('Geometry', '', false): 'Geometry': extension not found
    [SPLICE DFG LOG] loadExtension('Singletons', '', false): 'Singletons': extension not found
    [SPLICE DFG LOG] loadExtension('InlineDrawing', '', false): 'InlineDrawing': extension not found
    [SPLICE DFG LOG] loadExtension('Parameters', '', false): 'Parameters': extension not found
    [SPLICE DFG LOG] loadExtension('Manipulation', '', false): 'Manipulation': extension not found
    [SPLICE DFG LOG] loadExtension('FileIO', '', false): 'FileIO': extension not found
    [SPLICE DFG LOG] loadExtension('Util', '', false): 'Util': extension not found
    [SPLICE DFG LOG] loadExtension('FabricInterfaces', '', false): 'FabricInterfaces': extension not found
       ....
    [SPLICE DFG LOG] CreateValue: 'InlineDrawingScope': type not registered
    

    If I re-enable the extFolder, and load only the Fabric one, I can't close, and the log is:

    [SPLICE DFG LOG] [FABRIC:MT] Fabric Engine version 2.2.0 (May 11 2016 14:56:36 UTC)
    [SPLICE DFG LOG] [FABRIC:MT] Prepended user-specified extension path C:\data\Perso\3D\ppgui\FabricEngine-2.2.0-Windows-x86_64\Exts
    [SPLICE DFG LOG] [FABRIC:MT] Loading DFG presets from C:\.....\FabricEngine-2.2.0-Windows-x86_64\Presets\DFG
    [SPLICE DFG LOG] [FABRIC:MT] Loading DFG presets from C:\Users\.....\Fabric\Presets
    [SPLICE DFG LOG] [FABRIC:MT] Registered extensions {Alembic:1.0.0,AlembicWrapper:1.3.0,Animation:1.1.0,AttributeHelpers:1.0.1,Bullet:1.0.2,BulletHelpers:1.0.0,Characters:1.1.0,Containers:1.1.1,DFGHelpers,DFGWrapper:1.1.0,FabricInterfaces:1.1.0,FabricSynchronization:1.1.0,Fbx:1.1.0,FbxHelpers:1.0.2,FileIO:1.3.0,Geometry:1.4.0,Images:1.0.2,InlineDrawing:1.4.0,JSON:1.0.0,Manipulation:1.1.0,Math:1.3.0,FabricOBJ:1.1.0,FabricOGL:1.1.0,OpenImageIO:1.0.2,OSOGL:1.1.0,Parameters:1.0.0,Singletons:1.1.0,FabricStatistics:1.1.0,Util:1.2.0} in directory: C:\......\FabricEngine-2.2.0-Windows-x86_64\Exts
    [SPLICE DFG LOG] [FABRIC:MT] IRCache: Not pruning since last prune was less than 24 hours ago
    [SPLICE DFG LOG] Compiling extension Math:1.3.0
    [SPLICE DFG LOG] [FABRIC:MT] Loaded extension Math in 141.315ms (cached)
    [SPLICE DFG LOG] Compiling extension FabricSynchronization:1.1.0
    [SPLICE DFG LOG] [FABRIC:MT] Loaded extension FabricSynchronization in 7.925ms (cached)
    [SPLICE DFG LOG] Compiling extension FabricStatistics:1.1.0
    [SPLICE DFG LOG] [FABRIC:MT] Loaded extension FabricStatistics in 19.594ms (cached)
    [SPLICE DFG LOG] Compiling extension Singletons:1.1.0
    [SPLICE DFG LOG] [FABRIC:MT] Loaded extension Singletons in 4.147ms (cached)
    [SPLICE DFG LOG] Compiling extension Util:1.2.0
    [SPLICE DFG LOG] [FABRIC:MT] Loaded extension Util in 24.710ms (cached)
    [SPLICE DFG LOG] Compiling extension Containers:1.1.1
    [SPLICE DFG LOG] [FABRIC:MT] Loaded extension Containers in 176.744ms (cached)
    [SPLICE DFG LOG] Compiling extension Geometry:1.4.0
    [SPLICE DFG LOG] [FABRIC:MT] Loaded extension Geometry in 542.970ms (cached)
    [SPLICE DFG LOG] Compiling extension FabricOGL:1.1.0
    [SPLICE DFG LOG] [FABRIC:MT] Loaded extension FabricOGL in 65.287ms (cached)
    [SPLICE DFG LOG] Compiling extension Parameters:1.0.0
    [SPLICE DFG LOG] [FABRIC:MT] Loaded extension Parameters in 52.734ms (cached)
    [SPLICE DFG LOG] Compiling extension OpenImageIO:1.0.2
    [SPLICE DFG LOG] [FABRIC:MT] Loaded extension OpenImageIO in 15.208ms (cached)
    [SPLICE DFG LOG] Compiling extension FabricInterfaces:1.1.0
    [SPLICE DFG LOG] [FABRIC:MT] Loaded extension FabricInterfaces in 8.378ms (cached)
    [SPLICE DFG LOG] Compiling extension FileIO:1.3.0
    [SPLICE DFG LOG] [FABRIC:MT] Loaded extension FileIO in 29.098ms (cached)
    [SPLICE DFG LOG] Compiling extension InlineDrawing:1.4.0
    [SPLICE DFG LOG] [FABRIC:MT] Loaded extension InlineDrawing in 371.083ms (cached)
    [SPLICE DFG LOG] Compiling extension JSON:1.0.0
    [SPLICE DFG LOG] [FABRIC:MT] Loaded extension JSON in 17.544ms (cached)
    [SPLICE DFG LOG] Compiling extension Manipulation:1.1.0
    [SPLICE DFG LOG] [FABRIC:MT] Loaded extension Manipulation in 125.547ms (cached)
    ....
    [SPLICE DFG LOG] Compiling RTVal create for InlineDrawingScope
    [SPLICE DFG LOG] Constructed FabricSplice Client.
    

    hope this help...

    Pierre

  • andrewmacpandrewmacp Fabric Employee Posts: 7 Fabric Employee

    Hi Pierre,

    How are you creating and destroying your Core Client? Are you creating it directly via the FabricCore API or are you using the SpliceAPI calls to constructClient() and destroyClient()? There is an RTVal for the InlineDrawing scope automatically constructed and destroyed by those SpliceAPI calls, I'm wondering if this is related.

    Thanks,
    Andrew

  • craouettecraouette Posts: 113

    yep, it worked....
    Thanks a lot!!!

    In version 2.0.0, I tried to get rid of Splice... but it was not possible.
    I had to load extensions manually (using client.loadExtension("Math", "", false);...) but mainly, I was not able to setup the drawingContext and eventDispatcher without splice. And, There is no equivalent to FabricSplice::KLParser.
    Is it still the case?

Sign In or Register to comment.