Hunting Down a Go Runtime Bug on 32-Bit Embedded Systems

A Go application crashed on a 32-bit ARM embedded Linux system due to an internal assumption in the netpoll mechanism, which expected EPOLLIN as the only firing event. The issue was resolved by changing how netpoll tells event fds and socket fds apart, removing aliasing between raw pointers and tagged pointers. [summary] [comments]