As GLONASS has fully restored its constellation, there is an increasing desire to use multiple constellations to improve positioning performance. Knowledge of GLONASS signal-in-space (SIS) error behavior is very important for this purpose. However, few study has been done on GLONASS SIS anomalies due to several difficulties. This paper overcomes these difficulties and thoroughly characterizes the GLONASS SIS anomalies since 2009. In this paper, we compute GLONASS SIS user rang errors by comparing broadcast ephemerides/clocks with precise ephemerides/clocks. As the broadcast navigation data files from a global receiver network include data-logging errors, we developed a majority-voting-based algorithm to recover original navigation messages. Besides, we proposed a set of criteria to detect potential GLONASS SIS anomalies, bypassing the difficulties such as no user range accuracy information and no official integrity performance standard. Finally, we processed a total of 80,814,366 broadcast GLONASS navigation messages collected between Jan 1, 2009 and Aug 11, 2012, and identified 192 potential SIS anomalies. The results show an improving GLONASS SIS integrity performance over the past three years. Besides, we discovered four events of simultaneous multiple anomalies, including a constellation-wide clock change on Oct 28, 2009 that impacted all satellites. Furthermore, the results show that anomalies occur more frequently when satellites are out of the tracking coverage of the GLONASS monitor stations.