error in site data web service

Issue:

==

Search is not returning any results for particular site collection in WSS 3.0

Symptom:

====

We see that when we do a search on a site collection results are returned from other site collections and not from this one, even if we add a new document to this site and run a full crawl nothing happens.

Steps:

===

1. Run the following query against the WSS search DB to get the crawl logs, remember in WSS 3.0 crawl logs are not written to disk.

select msscrawlurllog.lasttouchstart as Time, msscrawlurllog.displayurl as URL, msscrawlurllog.errorid as Error, msscrawlerrorlist.errormsg as Description from msscrawlurllog join msscrawlerrorlist on msscrawlurllog.errorid = msscrawlerrorlist.errorid order by msscrawlurllog.lasttouchstart

 
 2. Look for the error code 560 with description “error in site data web service” for the root site collection

3. In my case it turned out to be a case of corrupt SIDs present in the userinfo table, to find those SIDs run the following query against the content DB

                Select tp_login, tp_systemid, tp_deleted from userinfo where len(ltrim(rtrim(tp_systemid))) <25 and tp_deleted = 0

         

          4. If in the result set you see user accounts other than system and NT Authority\all authenticated users, go ahead and add each of them in the site with at least read permissions. This actually fixes the corrupt SIDs so even if you don’t want certain users to be given read    permissions just add them once on the site and remove.

 

5. Run the SQL query again and make sure you don’t see any additional userIDs.

6.Once don’t execute a full crawl using

  1. Stsadm –o spsearch –action fullcrawlstart

And bingo you should be set