What do the various convertstore errors mean? - windbg

I am trying to convert a 2 tier symbol store into a 3-tier symbol store using the convertstore.exe tool as described by Microsoft.
However, I get error messages which do not tell me much. Depending on which store I want to convert I get the following errors:
Failed initial checks.
Failed to lock Symbol Store. Error 0x00000003.
ERROR: Couldn't create X:\...\index2.txt. Error 0x00000005.
Sometimes convertstore seems to run without error message, but it hasn't converted the store.
What do these error messages mean and how to mitigate them?

Failed initial checks.
Possible causes:
This error can happen if you run convertstore without any arguments.
Mitigation: Use the correct syntax convertstore.exe -s <store>
The symbol store is already a 3-tier store
Mitigation: none, if the symbol store is already a 3-tier store. The tool will only convert in one direction. It cannot convert back and forth.
Mitigation: If it isn't a 3-tier store, delete the file index2.txt.
Failed to lock Symbol Store. Error 0x00000003.
Possible causes:
The symbol store does not have a pingme.txt or 000Admin folder.
Mitigation: specify a symbol store, not an arbitrary folder that happens to contain some symbols.
Mitigation: create a zero byte file pingme.txt and an empty folder 000Admin.
Failed to move <pdb> > <pdb>. Error 0x00000005.
Possible causes:
The file is currently in use.
Mitigation: close other programs that may currently access the file, then delete index2.txt and run the command again.
You don't have write access to the symbol store.
Mitigation: use SysInternals Process Monitor to diagnose the issue. Note that convertstore will not use the drive letters of mapped network shares, but use the SMB share name instead.
Couldn't create index2.txt. Error 0x00000005.
Possible causes:
You don't have write access to the symbol store.
Mitigation: use SysInternals Process Monitor to diagnose the issue. Note that convertstore will not use the drive letters of mapped network shares, but use the SMB share name instead.
Failed to move <pdb> > <pdb>. Error 0x000000B7.
Possible causes:
The destination file already exists in the 3-tier part of the store. Someone worked on the symbol store in the meanwhile and downloaded new symbols, storing them in the 2-tier format. You now have them in two locations: a 2-tier folder and a 3-tier folder.
Mitigation: delete the 2-tier version manually.
No error message
Possible causes:
convertstore x64 version 10.0.22000.1 suffers from an access violation at convertstore!ConvertAdminFileW+0x1c9
Mitigation: submit the crash dump to Microsoft and hope that they will fix this. Then run the x86 (32 bit) version.

Related

Ppolyspace error: Read/Write access problem sources_list.txt (errno=13)

I'm trying to execute an analysis in polyspace. After the selection of the folder where there are the source files (.c) and the header files (.h), when I click on Run Bug Finder, I get the following message error:
Error: Polyspace : Read/Write access problem on C:\Users\Gennaro\Desktop\prova\Module_1\BF_Result\sources_list.txt (errno=13)
Can you tell me how to overcome it?
Every user has a full control of the folder.
EDIT: the resource monitor in Windows 10 didn't find any process that is locking the file sources_list.txt, and this file doesn't exist in the above folder.

PowerShell fails when trying to read certificate store with "The specified network resource or device is no longer available"

I was trying to find a specific certificate on my machine, and I ran into an odd issue. I was seeing The specified network resource or device is no longer available errors when calling:
Get-ChildItem -Path "XXXXX" -Recurse
Where "XXXX" was the thumbprint of the certificate I was looking for.
To try to narrow down the issue, I started by removing the thumbprint of my command (i.e. calling Get-ChildItem -Recurse), and found that the script failed when trying to read from the UserDS certificate store (see abbreviated screenshot of output, below):
I then tried to cd into the UserDS certificate store to see if it would even let me, and to see if I could see anything in that location. Upon trying to call ls I received the same error (see below):
I can't figure out what's causing this issue or how to fix it. It's blocking me on the local installation of a client's solution, so any help or ideas are very much appreciated. Thanks!
The UserDS store (or Active Directory User Object in the certmgr.msc) displays active directory stored certificates of the user (see here, here, here and here).
The error 0x80070037 (the specified network resource or device is no longer available) message occurs when a local device (like an usb stick is unavailable) or a network connection is interrupted while accessing a resource.
The store has a key in the windows registry (Computer\HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates\UserDS) and saves information on certificates which are read from active director.
I see two options:
The information in the registry is corrupt
you have issues accessing the active directory
If you want to handle the error when calling Get-ChildItem look at this SO post

Invalid token - invalid request BLR at offset 340 function F_LRTRIM is not defined

I am trying to synchronize two Firebird databases with each other. First of all, I already configured that the synchronization will be one-way. Therefore, one database is the Source-DB and the other is the target-DB.
To start a synchronization I use IBReplicator! When I start the synchronization, I get the error:
Exception: Invalid token
invalid request BLR at offset 340
function F_LRTRIM is not defined
module name or entrypoint could not be found
I started searching for the cause of the problem. What I already checked:
.dll files exist in the firebird directory
Firebird version is 32 - bit
IBExpert displays the UDF in the UDF Section of the database.
I read that it could be a problem when there is a mismatch between Firebird Server version and .dll file version. But I don't know how to verify the versions.
And I wanted to search for a .conf file to check the path for the UDF file (.dll) but I didn't find it. I only found the firebird.conf file and I already set the UDFAccess to Full.
I would really appreciate if someone could help me. I wasted a huge amount of time in this problem.
The error means that Firebird can't find the entrypoint or library when the function is executed. This means that
The library can't be found: it is not on the (library) path or in one of the folders listed in the UdfAccess configuration
The library was found, but it is 32 bit and you're running 64 bit (or it's 64 bit and you're running 32 bit)
The library was found, but doesn't have the entrypoint for the UDF.
Your problem seems to be the first, and the solution is to add the location of the UDF to the UdfAccess configuration. Given the comments, you should use
UdfAccess = Restrict UDF
Which will only allow UDF libraries from the UDF directory of your Firebird installation. If needed you can list multiple directories separated by ;.
You should never use UdfAccess = Full, it is unsafe as it can possibly be used to compromise your system with any library on the (library) path of your system.

SqlBase Database on One Drive

I have a database on "Microsoft OneDrive", I have 4 valid licenses from Gupta 4 SqlBase. When I try to run from PC 1 I can access the database, but when I try the same from PC 2 I got this
Reason: Attempting to open an existing file and a failure has occurred.
Remedy: Determine and correct the cause of the open file failure.
Verify that the specified file exists. Verify the number of
files allowed open for the operating system permits the
additional file, that is, check the FILES= configuration
parameter setting.
I assume this is related to the LOG files on the database and some settings in the Sql.Ini, but I'm not able to find where/how???
The intention is to run the database on "OneDrive", buy SqlBase licenses and run a multi user system. The application has been made as such.
Where do I think wrong?
Where do I do wrong?
What setting are missing?
Thanks
That won't work.
SqlBase (and all other RDBMS) are built to manage one databasefile + logfiles.
When multiple instances work with more or less replicated datafiles this ends up in a clash.
There are systems in the world which can work as a distributed cluster (e.g. like the document-database RavenDB) but they are built to work like this (not with OneDrive of course but with their own replication mechanism). Sqlbase is not.

MS Source Server: significance of srcsrv.ini variable

The MS source server technology uses an initialization file named srcsrv.ini. One of the values identifies the source server location(s), e.g.,
MYSERVER=\\machine\foobar
The docs leave much unanswered about this value. To start with, I haven't been able to find the significance of the value name, i.e., what's on the left side--and I don't see it used anywhere else. Hewardt & Pravat in Advanced Windows Debugging say "The left side ... represents the project name", but that doesn't seem to jibe with MS's "MYSERVER" example.
What is the significance of the left side? Where else is it used? Does the value reference a server or a project, and is there one per server, or one per project?
For anyone looking into this in the future, I received the following information from MS:
The name on the left side is the logical name of a version
control server. The name is also used in the source-indexed symbol files
(pdb). For example, a symbol file may contain this string value: MYSERVER=mymachine1.sys-mygroup.corp.microsoft.com:2003and the source files are referenced like this in pdb: *MYSERVER*/base/myfolder/mycode.cWhen SrcSrv starts, it looks at Srcsrv.ini for values; these values override the information contained in the .pdb file: "MYSERVER=mymachine.sys-mygroup.corp.microsoft.com:1666" overrides
"MYSERVER=mymachine1.sys-mygroup.corp.microsoft.com:2003"This enables users to configure a debugger to use an alternative source control server at debug time. The info is documented at http://msdn.microsoft.com/en-us/library/ms680641.aspx.
So, it is a logical name for a source server, and its value can be changed at debug time to reference a different server than the one originally used when the PDBs were created.
The way the debugger retrieves your source is by srcsrv using some command line utility. The utility program itself and the command line used varies depending on which type of repository hosts your code. One of the issues preventing retrieval is that when that command line program is invoked it fails.
To find out why use the command !sym noisy in WinDBG. It is mostly helpful in diagnosing symbol server issues but for source indexed PDB it also will show the actual command line WinDBG used. Copy the command from the command log window and run it in CMD.EXE to get more details on the failure.