I have a relatively simple setup: One Raspberry Pi 2 is directly connected to my home router, running [Debian 10][1] and [PiHole][2] with an [Unbound][3] rDNS service. That's it. 
 
I have set this system up two times now and both times, after a few weeks, when I tried to restart the Pi, it fails with the following errors: 
 

    sdhost-bcm2835 3f20200.mmc: timeout waiting for hardware interrupt.
    sdhost-bcm2835 3f20200.mmc: timeout waiting for hardware interrupt.
    sdhost-bcm2835 3f20200.mmc: timeout waiting for hardware interrupt.
    print_req_error: I/O error, dev mmcblk0, sector 614400
    sdhost-bcm2835 3f20200.mmc: timeout waiting for hardware interrupt.
    print_req_error: I/O error, dev mmcblk0, sector 614401
    sdhost-bcm2835 3f20200.mmc: timeout waiting for hardware interrupt.
    print_req_error: I/O error, dev mmcblk0, sector 614402
    sdhost-bcm2835 3f20200.mmc: timeout waiting for hardware interrupt.
    print_req_error: I/O error, dev mmcblk0, sector 614403
    sdhost-bcm2835 3f20200.mmc: timeout waiting for hardware interrupt.
    print_req_error: I/O error, dev mmcblk0, sector 614404
    sdhost-bcm2835 3f20200.mmc: timeout waiting for hardware interrupt.
    print_req_error: I/O error, dev mmcblk0, sector 614405
    sdhost-bcm2835 3f20200.mmc: timeout waiting for hardware interrupt.
    print_req_error: I/O error, dev mmcblk0, sector 614406
    sdhost-bcm2835 3f20200.mmc: timeout waiting for hardware interrupt.
    print_req_error: I/O error, dev mmcblk0, sector 614407
    Buffer I/O error on dev mmcblk0p2, logical block 0, async page read
    INFO: task kworker/0:1:13 blocked for more than 120 seconds.
    sdhost-bcm2835 3f20200.mmc: timeout waiting for hardware interrupt.
    print_req_error: I/O error, dev mmcblk0, sector 614400

As far as I can tell, the `sdhost-bcm timeout` and `print_req_error` (sector 614400-614407) messages then repeat infinitely (I've just let it run for over 24h and the kernel didn't resume). 
 
The first time, I thought this issue was caused by a broken SD card, so I got a new one and also disabled all logs and journaling in the operating system to reduce any writes. However, even with on new SD card with no system logs, the same has happened not even a month later. 
 
While installing the system, I was however able to successfully reboot the Pi (for example after installing Unbound). 

What could be the cause for this? Is there anything that can be done to ensure that the Pi will successfully boot after a planned (or unplanned) restart? 
 



  [1]: https://raspi.debian.net/tested-images/
  [2]: https://pi-hole.net/
  [3]: https://packages.debian.org/buster-backports/unbound