FirebirdSQL / firebird

Firebird server, client and tools
https://www.firebirdsql.org/
1.23k stars 213 forks source link

Bug when using gbak with -SE with directory with space in writing. [CORE6407] #6645

Open firebird-automations opened 3 years ago

firebird-automations commented 3 years ago

Submitted by: Luciano França (luciano_f)

Attachments: backup-using-services-when-spaces-or-special-characters-are-used.png

I am trying to automate a Gbak process but I need it to be run on the server and this is not possible if the destination directory is a folder with space in the writing such as '"E: \ Data Expert' or" E: \ You " that is, if there is space or accentuation, gbak does not work as -SE, but if it is not as a service, it normally works using double quotes in the path

Example : gbak -v -user SYSDBA -pas masterkey -se Localhost:service_mgr "E:\DataExpert\DATA.FDB" "E:\DataExpert\Backup.fbk" It works

gbak -v -user SYSDBA -pas masterkey -se Localhost:service_mgr "E:\Data Expert\DATA.FDB" "E:\Data Expert\Backup.fbk" Bug

gbak: ERROR:multiple sources or destinations specified gbak: ERROR: Exiting before completion due to errors gbak:Exiting before completion due to errors

firebird-automations commented 3 years ago

Commented by: @dyemanov

Duplicates CORE6392? Please re-check using a snapshot build.

firebird-automations commented 3 years ago

Commented by: Luciano França (luciano_f)

I took the file Gbak.exe from the file and changed it in my Firebird 3 installation but the problem continues.

http://web.firebirdsql.org/download/snapshot_builds/win/3.0/Firebird-3.0.7.33365-0_Win32.7z

https://ibb.co/FKmT2Cb

firebird-automations commented 3 years ago
Modified by: @pavel-zotov Attachment: backup\-using\-services\-when\-spaces\-or\-special\-characters\-are\-used\.png \[ 13490 \]
firebird-automations commented 3 years ago

Commented by: @pavel-zotov

I can not reproduce this. Doing in cmd.exe:

C:\Users\PashaZ>md "c:\books by O'Henry (1902-1910)"

C:\Users\PashaZ>echo create database 'localhost:c:\books by O''Henry (1902-1910)\Cabbages and Kings (1904).fdb' user sysdba password 'masterkey'; | C:\FB\30SS\isql -q -z ISQL Version: WI-V3.0.7.33365 Firebird 3.0 SQL> Server version: WI-V3.0.7.33365 Firebird 3.0 WI-V3.0.7.33365 Firebird 3.0/tcp (Image-PC1)/P15:C WI-V3.0.7.33365 Firebird 3.0/tcp (Image-PC1)/P15:C SQL> C:\Users\PashaZ>C:\FB\30SS\gbak -b -se localhost:service_mgr -v "c:\books by O'Henry (1902-1910)\Cabbages and Kings (1904).fdb" "c:\books by O'Henry (1902-1910)\Cabbages and Kings (1904) [1].fbk" 1>"c:\books by O'Henry (1902-1910)\Cabbages and Kings (1904) [1].log" 2>&1

C:\Users\PashaZ>dir /-c "c:\books by O'Henry (1902-1910)\Cabbages and Kings (1904) [1].fbk" | findstr .fbk 26.09.2020 09:57 512 Cabbages and Kings (1904) [1].fbk

C:\Users\PashaZ>dir /-c "c:\books by O'Henry (1902-1910)\Cabbages and Kings (1904) [1].log" | findstr .log 26.09.2020 09:57 944 Cabbages and Kings (1904) [1].log

C:\Users\PashaZ>type "c:\books by O'Henry (1902-1910)\Cabbages and Kings (1904) [1].log" gbak:readied database c:\books by O'Henry (1902-1910)\Cabbages and Kings (1904).fdb for backup gbak:creating file c:\books by O'Henry (1902-1910)\Cabbages and Kings (1904) [1].fbk gbak:starting transaction gbak:database c:\books by O'Henry (1902-1910)\Cabbages and Kings (1904).fdb has a page size of 8192 bytes. gbak:writing domains gbak:writing shadow files gbak:writing character sets gbak:writing collations gbak:writing tables gbak:writing types gbak:writing filters gbak:writing id generators gbak:writing exceptions gbak:writing functions gbak:writing stored procedures gbak:writing packages gbak:writing triggers gbak:writing trigger messages gbak:writing security classes gbak:writing table constraints gbak:writing referential constraints gbak:writing check constraints gbak:writing SQL roles gbak:writing names mapping gbak:closing file, committing, and finishing. 512 bytes written

C:\Users\PashaZ>

PS.

Please verify that your names does NOT end with space or dot! In that case you will have problem with such names because of OS specifics.

firebird-automations commented 3 years ago

Commented by: Luciano França (luciano_f)

Did you understand what I did?

I didn't change the Firebird internal installation to 3.0.7 I just downloaded the Gbak.exe file from version 3.0.7 and replaced it with version 3.0.6 that I have installed and tested it, so my question is to install the new version 3.0. 7 whole to perform the test?

firebird-automations commented 3 years ago

Commented by: @pavel-zotov

See CORE6392: this bug really did exist in http://3.0.6.It was fixed in 3.0.7.

> my question is to install the new version 3.0. 7 whole to perform the test?

Yes, exactly. The *whole* FB 3.0.7, not just one of its utilities.

firebird-automations commented 3 years ago

Commented by: @hvlad

Luciano,

> I didn't change the Firebird internal installation to 3.0.7 I just downloaded the Gbak.exe file from version 3.0.7 and replaced it with version 3.0.6 that I have installed and tested it, so my question is to install the new version 3.0. 7 whole to perform the test?

Since you run backup using Services Manager (switch -se) you should use for test both new gbak and new engine.

You don't have to "install new version" for testing, btw. It is enough to extract zip kit to the separate folder, stop currently running instance of Firebird and run new one as application (firebird -a). After testing stop running (new) instance and restart installed one (old).

firebird-automations commented 3 years ago

Commented by: Luciano França (luciano_f)

I did what you told me but I couldn't run version 3.0.7 gives the following error: Looking in the task manager of windows firebird is running but I can't do tests.

gbak: ERROR: Cannot attach to services manager gbak: ERROR: service E: \ Data Expert \ DATA.FDB is not defined gbak: Exiting before completion due to errors

when the version to install is released I do the tests.

Thankful.