I started an upgrade from Bacula 9.6.7 to Bacula 13.0.1 today and I have two
suggestions for fixing bugs. If a patch with a merge request is preferred, I
can do that next.
Action item 1:
There is an error on this line. There is more than one such line.
echo "Inserting File data from file.$$.data failed
That should be file1016.data (in this example), not file.$$.data - when an
error occurs, it misleads the user.
The error I hit is:
+ cat file1017.data
+ /usr/bin/gzip -d
+ psql --set 'ON_ERROR_STOP=1' -d bacula -c $'BEGIN; TRUNCATE File; COPY File
FROM STDIN; set maintenance_work_mem=\'2000MB\'; CREATE INDEX file_jpfid_idx on
File (JobId, PathId, Filename text_pattern_ops); ALTER TABLE ONLY File ADD
CONSTRAINT file_pkey PRIMARY KEY (FileId); COMMIT;'
BEGIN
TRUNCATE TABLE
ERROR: invalid input syntax for type bigint: "SET"
CONTEXT: COPY file, line 1, column fileid: "SET"
+ [ 1 -ne 0 ]
+ echo 'Inserting File data from file.26318.data failed.'
Inserting File data from file.26318.data failed.
+ exit 1
Looking at the file in question, I see some interesting stuff:
$ cat file1017.data | /usr/bin/gzip -d | head -20
SET
SET
SET
290658834 47767 129209 442701 next_vol.patch 0 0 Bs jlhS
IGk B A A COQKg ro EAA I BRYSdD BLhUbc BLk9ZE A A C fSmIlVrj9x4ETUxuH9PAIQ
290658835 50573 129209 237850 part_preface.xml.svn-base 0
0 Bs n0Gc IEk B Pp Pp CfDWu i EAA E BRYSdQ BHf/U1 BHf/U2 A A C
JebC91WLdIQADU0JDepbkg
290658836 44185 129209 227351 019.jpg 0 0 Bs P0IB IGk B
Pp Pp /XtI xL1 EAA HA BRYScm BFx9n8 BFx9n8 A A C G4caSihayh/RmpHvhl+wew
290658837 54991 129209 438580 T137.ithmb 0 0 Bs 34gB
IHk B Pp Pp Dfgkg Cj9w EAA VA BRYSeJ BJwsMf BLUldS A A C
CpSByTuNV1ZXrVej/29vfg
290658838 44189 129209 227351 023.jpg 0 0 Bs P0IF IGk B
Pp Pp /X0o y9Q EAA HA BRYScm BFx9n8 BFx9n8 A A C V0wtD4fr4t4GGYpcZNrkYA
290658839 44092 129209 227351 019--thumb.jpg 0 0 Bs P0Gk
IGk B Pp Pp /Wl4 EAZ EAA k BRYScm BFx9n4 BFx9n4 A A C ufFcqL3JsasSXNL8dz2OBg
I have an idea why SET SET SET occurs there.
I believe it relates to this line in the script:
psql --set ON_ERROR_STOP=1 -d ${db_name} $* -c "set work_mem='$WORKMEM';"'set
enable_mergejoin to off ; set enable_hashjoin to off;
Action item 2:
That SET SET SET is the output of the three SET commands above. It should be
suppressed via an option on the psql invocation. Sorry, I don't know that
option off-hand.
To move onward with the upgrade, I modified the script.
I added the following to ignore the first three lines of the script.
# we do everything in the same commit to avoid creating WALs on this
operation
cat file1016.data | $COMP -d | tail -n +4 | psql...
Side note: "cat filename |" can be replaced by "< filename"
I restarted the script after removing code related to work already done.
It succeeded.
First job failed though:
24-Nov 01:02 bacula-dir JobId 361289: Fatal error: sql_create.c:894 Fill File
table Query failed: INSERT INTO File (FileIndex, JobId, PathId, Filename,
LStat, MD5, DeltaSeq) SELECT batch.FileIndex, batch.JobId, Path.PathId,
batch.Name, batch.LStat, batch.MD5, batch.DeltaSeq FROM batch JOIN Path ON
(batch.Path = Path.Path) : ERR=ERROR: permission denied for table file
There seem to be a few tables with incorrect permissions.
Running grant_bacula_privileges fixed that.
I hope to do a blog post with more details about the upgrade process including
some suggestions:
* copy the scripts to the database server
* run it as the postgresql user, whatever that happens to be on the OS in
question
Full output at
https://gist.github.com/dlangille/d959a48b26843e97e023c9ed5389b7a2
--
Dan Langille
d...@langille.org
___
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users