Boolean modifier - Difference, doesn't cut both sides of a cylinder
After having several failed attempts at rectifying your model (Which had many internal faces, inverted normals etc.) I tried to replicate it myself. These are the steps I took:

To your first and larger cylinder, apply two boolean modifiers set to diference. Connect one to your smaller cutting cylinder. 

Go to the smaller cylinders Object tab in the properties window and scroll to display. Change the dropdown menu called Maximum Draw Type to wire. This should show only the edges of your cutting mesh. Do the dame for your two cross cutting planes.

Now select both the cutting planes and hit control J to make it one object. Now apply the other bolean to the single cutting object.

Fixed!



Cool! So what does this mean?

When we are using modifiers such as boolean, try not to apply the modifiers until you see your results as you wish. Yes, you may say too many modifiers slows your system, but that is why we try and group items where possible, plus it keeps out scene neater.

Remember, plan what you want to do before you do it.

And if you hit trouble as you have in your situation, it is better to start again. Many times I have seen people hit problems that even I cannot find a solution for. When I try and remake the model, or they to do so, 90% of the time it works the second time. It may be frustrating when you redo your work 5 times over, but it has almost always saved me time in the long run. Plus you learn from your mistakes!

A mistake does not a failure, it's just another step towards success.

Sorry for the pep talk but there you go.

Good luck with your project and I hope I helped,

BFB