I have a Raspberry Pi (running Raspbian) and an LB-LINK wireless USB adapter serving as an 802.11n access point with WPA2, running with hostapd and isc-dhcp-server. On the Pi, I have a python script that sends multicast packets about 50 bytes in size at a rate of 25Hz. We've noticed that when a wireless client goes out of range (and sometimes when it comes back into range) of the AP, the AP starts behaving oddly. Specifically, the socket.sendto() command in the python script blocks, and disconnected wireless clients cannot join the network. On Android tablets, the network shows up with 1 bar of signal strength, even though they're right next to the antenna. Clients already connected to the AP seem to stay connected (Wireshark capture from a client that was already connected shows it continuing to exchange packets with the router), and show a full bar of signal strength. Note that the wireless client that goes out of range doesn't have to be part of the multicast group (at least, I never explicitly set it to be, and we're not sending to the all hosts group). The wireless channel we're using is unused by other nearby access points. hostapd reports no abnormalities, and stopping it and starting it doesn't fix the problem. We have not seen this with regular UDP traffic being sent at the same rate.
Does anyone know off the bat why taking a wireless client out of range of the connected access point might cause the access point to "crash" if there's multicast data being sent over the network? Unfortunately, I don't have a lot of resources to pursue this issue significantly further, so I'm just asking to see if the issue sounds familiar to anyone, and if they were able to resolve it.
EDIT: I have just reproduced this on completely different hardware. A NETGEAR WNR2000 with the multicast packets coming from a Visual C++ application running on a WinCE device connected via ethernet (i.e., completely different than the setup used above). It seems to be rarer with this configuration, though, but I definitely made it happen.