Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Symstore.exe not deleting symbols when added with -:NOREFS option

397 views
Skip to first unread message

Nicholas Vasile

unread,
Jul 18, 2008, 11:13:03 AM7/18/08
to
I prefer to create and update my public symbol server by using symstore.exe
with the -:NOREFS option so that my Internet facing symbol server does not
store the refs.ptr files on the web server. I don’t want any reference to the
.pdb source location on web server. I am having a problem which seems to be
isolated to the -:NOREFS option. I am using version 6.9.3.113 of symstore.exe
– it has a modified date of 03/20/2008 06:43 PM. I am wondering if the
behavior is by design or a possible bug.

Problem Summary:
Deleting transactions that have been added with the -:NOREFS option fails
and blank refs.ptr files are added to each symbol directory.

Expected results after delete:
Symbol files are deleted from the symbol store

Actual results after delete:
Symbol files are not deleted and blank refs.ptr files are added to each
symbol directory

Steps I used to repro the problem:
1. Add symbols to the store:
C:\Utils >symstore add /f "\\buildserver\c$\documents and settings\nick\my
documents\visual studio 2005\projects\sehterm\*.pdb" /s
\\symbolserver\testsymstore$ /t "Nicks Programs" /v "beta" /c
"TestAddFromIndex" /o /compress /r -:NOREFS
SYMSTORE MESSAGE: 0 alternate indexers registered
SYMSTORE MESSAGE: LastId.txt reported id 0
SYMSTORE MESSAGE: History.txt reported id 0
SYMSTORE MESSAGE: Existing logs reported id 1
SYMSTORE MESSAGE: Final id is 0000000001
SYMSTORE MESSAGE: Copying \\buildserver\c$\documents and settings\nick\my doc
uments\visual studio 2005\projects\sehterm\debug\SehTerm.pdb to
\\symbolserver\testsymstore$\SehTerm.pdb\9738138F5E6E433098D30A18ECC3F40019\SehTerm.pd_ [Force
: T, Compress: T]
SYMSTORE MESSAGE: Copying \\buildserver\c$\documents and settings\nick\my doc
uments\visual studio 2005\projects\sehterm\release\SehTerm.pdb to
\\symbolserver\testsymstore$\SehTerm.pdb\2036A4A02E104374A6F110F56B37DA214\SehTerm.pd_ [Forc
e: T, Compress: T]
SYMSTORE MESSAGE: Copying \\buildserver\c$\documents and settings\nick\my doc
uments\visual studio 2005\projects\sehterm\SehTerm\Debug\vc80.pdb to
\\symbolserver\testsymstore$\vc80.pdb\C51AAC536C2346D4BCFBA4F35E2A6408\vc80.pd_ [Force: T
, Compress: T]
SYMSTORE MESSAGE: Copying \\buildserver\c$\documents and settings\nick\my doc
uments\visual studio 2005\projects\sehterm\SehTerm\Release\vc80.pdb to
\\symbolserver\testsymstore$\vc80.pdb\60A1AF9C34124C58854F948AB7E50194\vc80.pd_ [Force:
T, Compress: T]

SYMSTORE: Number of files stored = 4
SYMSTORE: Number of errors = 0
SYMSTORE: Number of files ignored = 0

2. My symbol store looks like this after:
C:\Utils >tree \\buildserver\testsymstore$ /F
Folder PATH listing
Volume serial number is 00500041 D4D0:C96D
\\symbolserver\TESTSYMSTORE$.
│ index.txt
│ pingme.txt

├───000Admin
│ 0000000001
│ history.txt
│ lastid.txt
│ server.txt

├───SehTerm.pdb
│ ├───2036A4A02E104374A6F110F56B37DA214
│ │ SehTerm.pd_
│ │
│ └───9738138F5E6E433098D30A18ECC3F40019
│ SehTerm.pd_

└───vc80.pdb
├───60A1AF9C34124C58854F948AB7E50194
│ vc80.pd_

└───C51AAC536C2346D4BCFBA4F35E2A6408
vc80.pd_


3. Try to delete symbols from store:
C:\Utils\SystemDump\x64>symstore del /i 0000000001 /s \\symbolserver\testsymst
ore$
Finding ID... 0000000002
SYMSTORE ERROR: Class: Server. Desc: \\symbolserver\testsymstore$\SehTerm.pdb\
9738138F5E6E433098D30A18ECC3F40019\refs.ptr doesn't contain any valid
transactio
n history.
SYMSTORE ERROR: Class: Server. Desc: \\symbolserver\testsymstore$\vc80.pdb\C51
AAC536C2346D4BCFBA4F35E2A6408\refs.ptr doesn't contain any valid transaction
his
tory.
SYMSTORE ERROR: Class: Server. Desc: \\symbolserver\testsymstore$\SehTerm.pdb\
2036A4A02E104374A6F110F56B37DA214\refs.ptr doesn't contain any valid
transaction
history.
SYMSTORE ERROR: Class: Server. Desc: \\symbolserver\testsymstore$\vc80.pdb\60A
1AF9C34124C58854F948AB7E50194\refs.ptr doesn't contain any valid transaction
his
tory.

SYMSTORE: Number of references deleted = 4
SYMSTORE: Number of files/pointers deleted = 0
SYMSTORE: Number of errors = 8

4. Check contents of symbol store – .ptr files have been added and the .pd_
files still exist:
C:\Utils >tree \\symbolserver\testsymstore$ /F
Folder PATH listing
Volume serial number is 00500041 D4D0:C96D
\\symbolserver\TESTSYMSTORE$.
│ index.txt
│ pingme.txt

├───000Admin
│ 0000000001.deleted
│ history.txt
│ lastid.txt
│ server.txt

├───SehTerm.pdb
│ ├───2036A4A02E104374A6F110F56B37DA214
│ │ refs.ptr
│ │ SehTerm.pd_
│ │
│ └───9738138F5E6E433098D30A18ECC3F40019
│ refs.ptr
│ SehTerm.pd_

└───vc80.pdb
├───60A1AF9C34124C58854F948AB7E50194
│ refs.ptr
│ vc80.pd_

└───C51AAC536C2346D4BCFBA4F35E2A6408
refs.ptr
vc80.pd_

--
Regards,
Nicholas Vasile

Nicholas Vasile

unread,
Aug 5, 2008, 7:39:00 AM8/5/08
to
I recieved a response to my original post offline from this board and I
thought I'd share the response with the board in case someone else runs into
the same problem.

Deletes using transactions are not expected to work if the transactions were
added with the-:NOREFS option because the add transactions do not
create/update the refs.ptr file for each .pdb. If there were no entries
added/created in the refs.ptr files for an add transaction then symstore.exe
can not currently figure out whether other transactions reference each .pdb
included in the transaction when you try to delete that transaction so they
are not deleted.

The other anomoly I noticed in that a blank refs.ptr file is added as part
of the delete transaction can be considered a minor bug.

--
Regards,
Nicholas Vasile

0 new messages