Skip to content

Non-deterministic for-loop during building from source code #7390

@OuYaozhong

Description

@OuYaozhong

Checklist

Steps to reproduce the issue

Hi, Open3D team,

I try to build from source to check an PR #7381, which is trying to fix the issue #7301 .

But during the compilation, the program raise an error, complaining that an for-loop inside the building file is non-deterministic, which I am unable to fix it by simple modifications.

Some details can check in another issue #7301.

I copy and paste some info from #7301 in the following .

Git Information:

(open3d) $USER@$HOSTNAME:$BASE/Open3D/build$ git rev-parse HEAD
0836ead2d679b2cfc237b559398e7f1cac67fe67
(open3d) $USER@$HOSTNAME:$BASE/Open3D/build$ git status
On branch nicolaloi/cuda-multipass-knn
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   ../CMakeLists.txt

no changes added to commit (use "git add" and/or "git commit -a")
(open3d) $USER@$HOSTNAME:$BASE/Open3D/build$ git diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 74e97b5a9..035be7f3d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,5 @@
 cmake_minimum_required(VERSION 3.24)
+link_libraries(/usr/lib/x86_64-linux-gnu/libzstd.so)
 # If you're using Ubuntu 20.04, we suggest you install the latest CMake from the
 # official repository https://apt.kitware.com/.
 # CMake 3.24+ is required for CUDA native arch selection
(open3d) $USER@$HOSTNAME:$BASE/Open3D/build$ 

I firstly run cmake -DBUILD_CUDA_MODULE=ON -DBUILD_SYCL_MODULE=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx ..

Then,

When I run make -j8, it output following error:

Consolidate compiler generated dependencies of target tpipelines_kernel                                                                                                                                                                                                                                                                                          [55/9274]
[ 57%] Built target tio                                                                                                                                                                                                                                                                                                                                                   
[ 58%] Built target tgeometry                                                                                                                                                                                                                                                                                                                                             
Consolidate compiler generated dependencies of target utility                                                                                                                                                                                                                                                                                                             
[ 58%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/utility/ColorMap.cpp.o                                                                                                                                                                                                                                                                   
[ 58%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/utility/DrawGeometry.cpp.o                                                                                                                                                                                                                                                               
[ 59%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/shader/GeometryRenderer.cpp.o                                                                                                                                                                                                                                                       
[ 59%] Building CXX object cpp/open3d/geometry/CMakeFiles/geometry.dir/SurfaceReconstructionPoisson.cpp.o                                                                                                                                                                                                                                                                 
[ 60%] Built target tpipelines                                                                                                                                                                                                                                                                                                                                            
[ 61%] Built target tpipelines_kernel                                                                                                                                                                                                                                                                                                                                     
[ 61%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Application.cpp.o                                                                                                                                                                                                                                                                              
[ 62%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/BitmapWindowSystem.cpp.o                                                                                                                                                                                                                                                                       
[ 62%] Building CXX object cpp/open3d/geometry/CMakeFiles/geometry.dir/TriangleMeshSimplification.cpp.o                                                                                                                                                                                                                                                                   
[ 64%] Built target utility                                                                                                                                                                                                                                                                                                                                               
[ 64%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Button.cpp.o                                                                                                                                                                                                                                                                                   
[ 64%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Checkbox.cpp.o                                                                                                                                                                                                                                                                                 
[ 64%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/utility/GLHelper.cpp.o                                                                                                                                                                                                                                                                   
[ 64%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Color.cpp.o                                                                                                                                                                                                                                                                                    
[ 64%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/shader/ImageMaskShader.cpp.o                                                                                                                                                                                                                                                        
[ 64%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/shader/ImageShader.cpp.o                                                                                                                                                                                                                                                            
[ 64%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/ColorEdit.cpp.o                                                                                                                                                                                                                                                                                
[ 64%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/shader/NormalShader.cpp.o                                                                                                                                                                                                                                                           
[ 64%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/utility/PointCloudPicker.cpp.o                                                                                                                                                                                                                                                           
[ 64%] Building CXX object cpp/open3d/geometry/CMakeFiles/geometry.dir/TriangleMeshSubdivide.cpp.o                                                                                                                                                                                                                                                                        
In file included from $BASE/Open3D/cpp/open3d/geometry/SurfaceReconstructionPoisson.cpp:32:                                                                                                                                                                                                                                                                    
In file included from $BASE/Open3D/build/poisson/src/ext_poisson/PoissonRecon/Src/FEMTree.h:53:                                                                                                                                                                                                                                                                
In file included from $BASE/Open3D/build/poisson/src/ext_poisson/PoissonRecon/Src/SparseMatrix.h:153:                                                                                                                                                                                                                                                          
$BASE/Open3D/build/poisson/src/ext_poisson/PoissonRecon/Src/SparseMatrix.inl:466:24: error: reference to non-static member function must be called                                                                                                                                                                                                             
  466 |         for( size_t i=0 ; i<A.rows ; i++ )                                                                                                                                                                                                                                                                                                                        
      |                             ~~^~~~                                                                                                                                                                                                                                                                                                                                
$BASE/Open3D/build/poisson/src/ext_poisson/PoissonRecon/Src/SparseMatrix.inl:499:24: error: reference to non-static member function must be called                                                                                                                                                                                                             
  499 |         for( size_t i=0 ; i<A.rows ; i++ )                                                                                                                                                                                                                                                                                                                        
      |                             ~~^~~~                                                                                                                                                                                                                                                                                                                                
2 errors generated.                                                                                                                                                                                                                                                                                                                                                       
make[2]: *** [cpp/open3d/geometry/CMakeFiles/geometry.dir/build.make:412: cpp/open3d/geometry/CMakeFiles/geometry.dir/SurfaceReconstructionPoisson.cpp.o] Error 1                                                                                                                                                                                                         
make[2]: *** Waiting for unfinished jobs....                                                                                                                                                                                                                                                                                                                              
[ 64%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/utility/SelectionPolygon.cpp.o                                                                                                                                                                                                                                                           
[ 64%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/shader/PhongShader.cpp.o                                                                                                                                                                                                                                                            
[ 64%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/utility/SelectionPolygonVolume.cpp.o                                                                                                                                                                                                                                                     
[ 64%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Combobox.cpp.o                                                                                                                                                                                                                                                                                 
[ 64%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/RenderOption.cpp.o                                                                                                                                                                                                                                                            
[ 64%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/shader/PickingShader.cpp.o                                                                                                                                                                                                                                                          
[ 64%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Dialog.cpp.o                                                                                                                                                                                                                                                                                   
[ 64%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Events.cpp.o                                                                                                                                                                                                                                                                                   
[ 64%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/RenderOptionWithEditing.cpp.o                                                                                                                                                                                                                                                 
[ 64%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/FileDialog.cpp.o                                                                                                                                                                                                                                                                               
[ 64%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/shader/RGBDImageShader.cpp.o                                                                                                                                                                                                                                                        
[ 64%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/shader/ShaderWrapper.cpp.o                                                                                                                                                                                                                                                          
[ 64%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/shader/Simple2DShader.cpp.o                                                                                                                                                                                                                                                         
[ 64%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/FileDialogNative.cpp.o
make[1]: *** [CMakeFiles/Makefile2:2478: cpp/open3d/geometry/CMakeFiles/geometry.dir/all] Error 2                                                                                                                                                                                                                                                                         
make[1]: *** Waiting for unfinished jobs....                                                                                                                                                                                                                                                                                                                              
[ 64%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/shader/SimpleBlackShader.cpp.o                                                                                                                                                                                                                                                      
[ 65%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Font.cpp.o                                                                                                                                                                                                                                                                                     
[ 66%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/ViewControl.cpp.o                                                                                                                                                                                                                                                             
[ 66%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/ViewControlWithCustomAnimation.cpp.o                                                                                                                                                                                                                                          
[ 66%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/GLFWWindowSystem.cpp.o
[ 67%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/shader/SimpleShader.cpp.o
[ 67%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/shader/TexturePhongShader.cpp.o
[ 67%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Gui.cpp.o
[ 67%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/ImageWidget.cpp.o
[ 67%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/ImguiFilamentBridge.cpp.o
[ 67%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Label.cpp.o
[ 67%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/shader/TextureSimpleShader.cpp.o
[ 67%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Label3D.cpp.o
[ 67%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Layout.cpp.o
[ 67%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/ListView.cpp.o
[ 68%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Menu.cpp.o
[ 68%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/ViewControlWithEditing.cpp.o
[ 68%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/rendering/filament/FilamentCamera.cpp.o
[ 68%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/rendering/filament/FilamentEntitiesMods.cpp.o
[ 68%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/rendering/filament/FilamentGeometryBuffersBuilder.cpp.o
[ 68%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/MenuImgui.cpp.o
[ 68%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/rendering/filament/FilamentRenderToBuffer.cpp.o
[ 68%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/ViewParameters.cpp.o
[ 68%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/NumberEdit.cpp.o
[ 68%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/RadioButton.cpp.o
[ 68%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/rendering/filament/FilamentResourceManager.cpp.o
[ 68%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/ViewTrajectory.cpp.o
[ 68%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/rendering/filament/FilamentScene.cpp.o
[ 68%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/PickPointsInteractor.cpp.o
[ 68%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/Visualizer.cpp.o
[ 69%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/rendering/filament/FilamentView.cpp.o
[ 69%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/VisualizerCallback.cpp.o
[ 69%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/rendering/filament/LineSetBuffers.cpp.o
[ 69%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/rendering/filament/PointCloudBuffers.cpp.o
[ 69%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/ProgressBar.cpp.o
[ 69%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/rendering/filament/TriangleMeshBuffers.cpp.o
[ 69%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization_impl.dir/rendering/filament/GaussianSplatBuffers.cpp.o
[ 69%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/VisualizerRender.cpp.o
[ 69%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/VisualizerWithCustomAnimation.cpp.o
[ 69%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/SceneWidget.cpp.o
[ 69%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/VisualizerWithEditing.cpp.o
[ 70%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/VisualizerWithKeyCallback.cpp.o
[ 70%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Slider.cpp.o
[ 70%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/StackedWidget.cpp.o
[ 70%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/TabControl.cpp.o
[ 70%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/VisualizerWithVertexSelection.cpp.o
[ 70%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/rendering/Material.cpp.o
[ 70%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/rendering/Camera.cpp.o
[ 71%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Task.cpp.o
[ 71%] Built target visualization_impl
[ 71%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/rendering/CameraInteractorLogic.cpp.o
[ 71%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/rendering/CameraSphereInteractorLogic.cpp.o
[ 71%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/TextEdit.cpp.o
[ 71%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/rendering/ColorGrading.cpp.o
[ 71%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/rendering/Gradient.cpp.o
[ 71%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/rendering/IBLRotationInteractorLogic.cpp.o
[ 71%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Theme.cpp.o
[ 71%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/ToggleSwitch.cpp.o
[ 72%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/rendering/LightDirectionInteractorLogic.cpp.o
[ 72%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/TreeView.cpp.o
[ 72%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/UIImage.cpp.o
[ 72%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Util.cpp.o
[ 72%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/VectorEdit.cpp.o
[ 72%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/rendering/MaterialModifier.cpp.o
[ 72%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/rendering/MatrixInteractorLogic.cpp.o
[ 72%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Widget.cpp.o
[ 72%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/rendering/ModelInteractorLogic.cpp.o
[ 72%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/rendering/Open3DScene.cpp.o
[ 73%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/WidgetProxy.cpp.o
[ 73%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/rendering/Renderer.cpp.o
[ 73%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/rendering/RendererHandle.cpp.o
[ 73%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/rendering/RotationInteractorLogic.cpp.o
[ 73%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/rendering/filament/FilamentEngine.cpp.o
[ 73%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/WidgetStack.cpp.o
[ 73%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/Window.cpp.o
[ 73%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/rendering/filament/FilamentRenderer.cpp.o
[ 73%] Building CXX object cpp/open3d/visualization/gui/CMakeFiles/GUI.dir/NativeLinux.cpp.o
[ 74%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/utility/Draw.cpp.o
[ 74%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/MessageProcessor.cpp.o
[ 74%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/GuiSettingsModel.cpp.o
[ 74%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/GuiSettingsView.cpp.o
[ 74%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/GuiVisualizer.cpp.o
[ 74%] Built target GUI
[ 74%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/GuiWidgets.cpp.o
[ 74%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/O3DVisualizer.cpp.o
[ 74%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/visualizer/O3DVisualizerSelections.cpp.o
[ 74%] Building CXX object cpp/open3d/visualization/CMakeFiles/visualization.dir/app/Viewer.cpp.o
[ 74%] Built target visualization
make: *** [Makefile:156: all] Error 2

It seems that the complier complain that the for-loop is not deterministic, which maybe vary during the compilation.

Error message

See Above

Open3D, Python and System information

See Above

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions