Strange in boolean (difference) operation

Hi, I have two shapes. One is named slab, and the other named hole. I want to obtain a new slab excluding the hole shape. So I tried vtkBooleanOperationPolyDataFilter with difference operation in VTK 9.1.0. In the result, a region belongs to the hole shape is not removed (see the red region in the result figure) although I confirmed the hole shape can penetrate the slab, which is strange to me. Attached are the two shapes (STL files) and result figures. Any comments are welcome. Thanks in advance.
slab.stl (1.5 KB)
hole.stl (172.2 KB)
result.stl (345.5 KB)

It could be that the big difference in feature size of the two models which causes roundoff issues. Try to apply vtkLinearSubdivisionFilter to “slab.stl” before applying the Boolean operation

@Christos_Tsolakis Thanks for your suggestion. The result looks correct after apply vtkLinearSubdivisionFilter with number of subdivisions equals 1.