you have to put a sleep (with for example 250ms) somewhere into the while loop, please take a look into the attached image.
Although this is a timed loop, I think you need to sleep for a while.
I can't explain why, but for me it mostly fixes this problem
are you still struggling with this issue?
If so, could you please write a little bit more about your project or perhaps share it? What is the part number of your sbRIO? Why are you using 1 MHz timed loop to read data from CAN? What does your application in general and what does this loop do in the context of whole project?
I get CAN Messages down to every 8ms and because you can only read one message at a time with the sbRIO CAN function, I need to use this fast cycle time.