boolean difference working weirdly
This has been asked before in different ways, so you’re not the only one. The Boolean modifier typically runs into problems with miscalculated normals, so double check your normals in both meshes. If both sides have the same wrong result, check the mode setting on the modifier. If the results are not the same on both sides but you’re sure the normals are correct, you might have some non-manifold mesh or micro-faces somewhere.
Edit: looking at the hole, and thinking about what you want, I recommend calculating the cutting cylinder’s normals to its inside, and using the “union” mode on Boolean. I could be wrong, though.