PostgreSQL backupers should not consider text on stderr as an error
-------------------------------------------------------------------
Key: SEQUOIA-880
URL: https://forge.continuent.org/jira/browse/SEQUOIA-880
Project: Sequoia
Type: Bug
Components: Backup System
Versions: Sequoia 2.10.3
Environment: Sequoia 2.10.3 with PostgreSQL 8.1
Reporter: Guillaume Smet
Hi all,
I'm back to work on Sequoia and I'm currently playing with Sequoia 2.10.3 (far
better than the 2.9.1 version I was using a few months ago, nice work!). A few
of you may remember that I worked on a patch to PostgreSQL backupers a few
months ago and various other patches and bug reports.
I was trying to initialize a cluster and the database used contains a few
schema mistakes e.g. for example, two fields referenced by a foreign key are
not of the same type. When using pg_restore, we have a few comments on stderr
explaining that it's not a good idea and it may be slow:
pg_restore: WARNING: foreign key constraint "cms_use_hom_fol_map_se_f_7arnr"
will require costly sequential scans
DETAIL: Key columns "section_id" and "section_id" are of different types:
numeric and integer.
pg_restore: WARNING: foreign key constraint "cms_use_hom_fol_map_us_f_g0a5f"
will require costly sequential scans
DETAIL: Key columns "user_id" and "user_id" are of different types: numeric
and integer.
I agree having this sort of mistakes in the schema is not a good idea but
that's not the point here (it's not a schema I designed and I cannot change it
atm).
The problem is that Sequoia PostgreSQL backupers consider that any line on
stderr results in the fact that the pg_restore command was not successful. See
line 335-336 of NativeExecCommand.java which are:
// Return exitValue + size of errors (if all is well, should be 0)
return process.exitValue() + stderr.size();
As far as PostgreSQL is concerned, the exit code is sufficient and
stderr.size()>0 should not be considered as an error as it is also used to
provide advice to the users.
AFAICS the code in NativeExecCommand.java is also used at least by MySQL
backupers so it should be checked also with MySQL.
Regards,
--
Guillaume
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://forge.continuent.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
_______________________________________________
Sequoia mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/sequoia