I thought the cloud was modern? The sad tale of the 32-bit world
IPv6. its a thing. Look it up. 128-bit IP’s, enough that all your hopes and dreams can get their own IP.
Cloud? IPv4. 32-bit. Enough that we NAT multiple times for no really good reason.
But that is not the topic of today’s learning/rant. Its about ‘stat’ and 64-bit-inodes. You see boys and girls, today I was having this intermittent problem. Some containers were just up and dying during their start script. No reason was given, just death. So I caught it, added a sleep, and shell’ed in. And here is the rabbit-hole I fell down.
But for reasons most mysterious I was getting errors like:
ls: can't open '/': Value too large for defined data type
Hmm. Inconceivable. it turns out that busybox is compiled without -D_FILE_OFFSET_BITS=64, meaning it can only handle 32-bit inodes. Its also compiled 32-bit making it somewhat dubious that it would ‘just work’ if this define were added (since off_t would presumably be 64-bit and the integer size would be 32).
research googling lead to this issue.
tl;dr: busybox is not cloud native.