free(): double free detected in tcache 2

free(): double free detected in tcache 2  

  By: helene on July 13, 2023, 12:38 p.m.

Hello,

I submitted it again and I have this error message now, is it possible to know a bit more about this? Also, if I have an error message and need to resubmit, how can I reupload my algorithm and use the same algorithm again for the submission? (it is currently not agreeing that I reupload my algorithm and resubmit it, I need to recreate a new one...)

Thanks!

Re: free(): double free detected in tcache 2  

  By: apepe on July 13, 2023, 2:13 p.m.

Hi Helene,

There is an hash check of the docker image, you need to slightly modify the image before reuploading. Then you should not need to create a new one.

Let me know if this is sufficient. You algorithm completed, the error doesn't seem to be on your side. I have just tested the pipeline and I didn't get any error.

Best Antonio

Re: free(): double free detected in tcache 2  

  By: helene on July 14, 2023, 6:57 a.m.

Thanks for you answer!

So I don't need to resubmit this trial?

Re: free(): double free detected in tcache 2  

  By: lWM on July 14, 2023, 11:42 a.m.

Hello,

I have just received the same error message: free(): double free detected in tcache 2

What is the reason for this? The same container passed the pipeline 2 days ago. Is it possible to somehow run the same container again without having to rebuild and upload it again? It takes a lot of time.

Bests,

Re: free(): double free detected in tcache 2  

  By: lWM on July 14, 2023, 10:10 p.m.

Update:

One my submissions was successfully evaluated. Another one failed again with the error: "free(): double free detected in tcache 2" - both the containers are runnable in the "Try-out Algorithm" and finish successfully. According to the status messages - the error happens during the run of the evaluation script, after the algorithm successfully calculates the segmentation / meshes.

Bests,

Re: free(): double free detected in tcache 2  

  By: apepe on July 15, 2023, 1:51 p.m.

Hi,

It should be fixed now. The problem appeared after switching to HD95.

We were not able to reproduce the issue ourselves. It only happened on the remote GC/AWS nodes for some submissions. We have now changed the way we compute HD95 and this will hopefully solve the issue.

We will wait a couple of days to start with phase 2 to ensure the issue is solved.

Sorry for the inconvenience and thanks for your active participation.

Best, Antonio

Re: free(): double free detected in tcache 2  

  By: lWM on July 17, 2023, 3:11 p.m.

Hi,

The error is still there - just received the "free(): double free detected in tcache 2". Maybe is it somehow connected to the mesh evaluation? It seems that the error happens only to participants taking part in the optional subtasks.

Bests,

Re: free(): double free detected in tcache 2  

  By: apepe on July 18, 2023, 12:13 p.m.

Hi,

I was able to reproduce the issue this time.

Unfortunately the issue is before the mesh evaluation. TetGen fails to generate a volume mesh for the second sample in your submission. You could for example look at the orientation of the face normals and at the dihedral angles of your meshes. E.g. add a relaxation/smoothing of the geometry. This is why the two meshing tasks are separate.

The issue directly kills the process, but such mesh would otherwise be marked as invalid. We will try to prevent the killing of the process.

If you should still have this issue (especially for phase 2), please resubmit the container without the volumetric meshing (use the trimesh Box() placeholder) and notify us here or via email. We will then manually evaluate the failed submission for the subtask on volume meshing.

Best, Antonio

Re: free(): double free detected in tcache 2  

  By: lWM on July 18, 2023, 1:12 p.m.

Thank you for the clarification.

I have attempted to use TetGen to create the volumetric meshes for all available training cases and it passed successfully for the surface meshes predicted by the proposed algorithm (for the default volumetric meshing parameters).

Could you please share the parameters (or even a part of the script) of the volumetric meshing that is being used in the evaluation platform? I hope it does not break the challenge rules since at first we were asked to provide the volumetric meshes directly and the whole situation is a consequence of limitations of the grand-challenge platform.

Bests,

Re: free(): double free detected in tcache 2  

  By: apepe on July 18, 2023, 1:31 p.m.

Sure, this is no problem. We are using MeshPy, which provides interfaces to TetGen. Here is a snippet of the code:

    from meshpy.tet import MeshInfo, build
    import trimesh

    mean_jacobian_ratio = -100
    mesh_pred = trimesh.load_mesh("filename")
    . . .           
    try:
        if mesh_pred.is_watertight:
            mesh_info = MeshInfo()
            mesh_info.set_points(mesh_pred.vertices)
            mesh_info.set_facets(mesh_pred.faces)
            mesh = build(mesh_info)
    except Exception:
        mean_jacobian_ratio = -99.0

I will upload the script on GitHub for everybody.

Best Antonio

 Last edited by: apepe on Aug. 15, 2023, 12:58 p.m., edited 1 time in total.

Re: free(): double free detected in tcache 2  

  By: lWM on July 19, 2023, 10:19 a.m.

Thanks, after several attempts I was able to finally generate an acceptable mesh. However, I had to significantly decrease the quality of the mesh before the submission was accepted by the system (even though the original mesh was watertight and not degenerate) - some detected branches had to be deleted and the whole structure had to be enlarged.

Interestingly, the code you provided indeed silently fails for some cases. On the other hand, the same .obj files are meshed correctly when using the Tetgen directly (just using the default parameters in the Python wrapper for tetgen).

Bests,

Re: free(): double free detected in tcache 2  

  By: helene on July 20, 2023, 6:45 a.m.

Is it possible to submit our own volumetric mesh generation parameter? With my tetgen configuration, I had no issues so far

Re: free(): double free detected in tcache 2  

  By: apepe on July 20, 2023, 9:05 a.m.

Hi!

We use the default parameters suggested by MeshPy ("-pq")

-q requires a minimum radius-edge ratio that cannot be guaranteed if some regions are too "spiky", for example.

Removing this parameter would allow for any volumetric mesh, which would limit the scope of this task even further. Meshes with such regions are generally not usable in CFD/FSI blood flow simulations.

We initially planned for the participants to produce a valid volumetric mesh for CFD simulations. This implementation was not possible due to some technical limitations of the Grand-Challenge platform.

So we eventually decided for this "hybrid" setting as the alternative was to remove this task.

We are open to suggestions if other possibilities arise.

Best, Antonio