Online validation fails on WINDOWS if `dbname` argument contains forward slash 
('/') and concurrent attachment which also uses '/' exists.
------------------------------------------------------------------------------------------------------------------------------------------

                 Key: CORE-4860
                 URL: http://tracker.firebirdsql.org/browse/CORE-4860
             Project: Firebird Core
          Issue Type: Bug
    Affects Versions: 3.0 RC 1
         Environment: Windows XP
            Reporter: Pavel Zotov


On Windows one may specify FORWARD slash ('/', ascii_char = 47) as subfolders 
separator in the path to database file, and it works OK:

C:\FBTESTING\qa\fbt-repo>isql 
localhost/3333:C:/FBTESTING/qa/fbt-repo/tmp/E30.fdb
Database:  localhost/3333:C:/FBTESTING/qa/fbt-repo/tmp/E30.fdb

But if we do following:
1) make ISQL connection using this separator (forward slash), 
2) try to perform online validation using also this separator ('/') in the path 
to validated database
-- then we get:
===
fbsvcmgr.exe localhost/3333:service_mgr user SYSDBA password masterkey 
action_validate dbname C:/FBTESTING/qa/fbt-repo/tmp/E30.fdb val_lock_timeout 1
I/O error during "CreateFile (open)" operation for file 
"C:/FBTESTING/qa/fbt-repo/tmp/E30.fdb"
-Error while trying to open file
-The process can not access the file because the file is in use by another 
process.
===

If we change separator in ISQL window to default for Windows ("\") than 
validation works fine.
If we change separator in fbsvcmgr command line to '\' (but leave '/' in ISQL) 
than validation also works fine.

So, the trouble exists only when forward slash is specified both in ISQL 
connection string and in validation DB path argument.

BTW: error in FBSVCMGR will not appear for other actions, with forward slash as 
path separator, e.g.:

fbsvcmgr.exe localhost/3333:service_mgr user SYSDBA password masterkey 
action_db_stats dbname C:/FBTESTING/qa/fbt-repo/tmp/E30.fdb sts_hdr_pages

-- works OK and produces standard output of DB header info.

This bug prevent from creating test which tries to validate database online: 
fbtest engine has $(DATABASE_LOCATION) macro which contains PATH of currently 
used database. But this macro uses exactly FORWARD slash bot on Linux and 
Windows as path separator, so one may NOT to do this:

runProgram('fbsvcmgr',['localhost:service_mgr','user','SYSDBA','password','masterkey','action_validate','dbname','$(DATABASE_LOCATION)bugs.core_4707.fdb','val_lock_timeout','1'])

-- it will fail with error that is shown above ("process can not access the 
file because the file is in use by another process").

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to