The code generated for glGetProgramStringARB incorrectly passes 0 to __glXReadReply for the size. The result is that __glXReadReply doesn't read the reply data from the server. The data gets left in the buffer and results in a protocol error on the next call.
Fixed in Mesa CVS.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.