Hi Dan Files created with the following Perl script reproduce the problem for me. I think it may give a more accurate test basis than the TGZ file I sent:
#! /usr/bin/perl -w touch( "2004-04-29\ Z\237rich\ 0001.jpeg" ); touch( "2004-04-29\ Z\237rich\ 0002.jpeg" ); touch( "2004-05-05\ Erg\212nzung\ 0001.jpeg" ); touch( "2004-05-05\ Erg\212nzung\ 0002.jpeg" ); sub touch { my $filename = shift; open FILE, ">$filename"; close FILE; } Regards Steve On 5 Jan 2008, at 04:39, Dan Langille wrote: > Dan Langille wrote: >> Stephen Winnall wrote: >>> I have been using Bacula for over two years quite happily on an >>> old Red Hat 9 server. The last version of Bacula that I used was >>> a hand- compiled 2.0.0 with PostgreSQL 7.3.9. >>> >>> This server is the data storage for my Mac OS X and Windows >>> clients , which it serves with Netatalk and Samba. So any given >>> file can be accessed via Netatalk, Samba or directly as a Linux >>> file. Filenames can be English or German (so may contain umlauts). >>> >>> I decided to migrate the system to Fedora 8 and go with the RPMs >>> in that distro (Bacula 2.0.3 and PostgreSQL 8.2.5). I had >>> previously done upgrades from Bacula 1.3.x to 2.0.0, and I've >>> migrated other PostgreSQL databases across release versions, so I >>> thought I knew what I was doing. I dumped the Bacula database >>> from PG 7.3.9 using the PostgreSQL facility in Webmin and >>> restored it to a new UTF-8 database in PG 8.2.5. >>> >>> I had to make a few minor alterations to my bacula-*.conf files >>> (I built stuff under "/opt/bacula" and the Fedora distro has it >>> under "/") and I was ready to go. >>> >>> Given the time of year, the first task to throw at the new system >>> was the annual full backup. This helped me to shake out the usual >>> silly errors that one has, but it's also thrown me up against >>> something which I don't know how to handle in Bacula. >>> >>> I have some filenames which contain lowercase-a-umlaut or >>> lowercase-u- umlaut which Netatalk has encoded in MacRoman (<8A> >>> and <9F> respectively). PostgreSQL takes exception to these and >>> Bacula generates messages like the following: >>> >>> 04-Jan 15:31 hub-dir: Annual_Backup.2008-01-04_15.26.38 Fatal >>> error: sql_create.c:870 sql_create.c:870 insert INSERT INTO >>> Filename (Name) VALUES ('2004-04-29 Z<9F>rich 0002.jpeg') failed: >>> ERROR: invalid byte sequence for encoding "UTF8": 0x9f >>> HINT: This error can also happen if the byte sequence does not >>> match the encoding expected by the server, which is controlled >>> by "client_encoding". >>> >>> because they fall into an area of UTF-8/Unicode/ISO-8859-1 which >>> seems to be unassigned (<82>-<8C> and <90>-<9F>). >>> >>> These files are not new and I didn't have this problem with my >>> old configuration, so something has presumably changed in Bacula >>> or PostgreSQL. >> Can you put one of those files (or just the filename) into a >> tarball and email it to me please? I will try to back it up here. > > Read this slowly to see where I differ from you. I have not had any > backup failures yet. > > I have the files. Good news: The backup succeeded here. Here is > some of the job output: > > $ echo 'list files jobid=15984' | bconsole | grep nem > | /home/dan/bacula-nemesis/2004-05-05 Erg�nzung > 0002.jpeg | /home/dan/ > bacula-nemesis/2004-05-05 Erg�nzung > 0001.jpeg | /home/dan/bacula- > nemesis/2004-04-29 Z�rich > 0002.jpeg | /home/dan/bacula- > nemesis/2004-04-29 Z�rich > 0001.jpeg | /home/dan/bacula- > nemesis/ | /home/dan/bacula-nemesis.tar.gz > > But then, I'm using SQL_ASCII here. Let me try UTF8 on another > system. > > Oh.. it worked there too: > > [EMAIL PROTECTED]:~] $ psql -l > List of databases > Name | Owner | Encoding > -----------+--------+----------- > bacula | bacula | UTF8 > postgres | pgsql | SQL_ASCII > regress | dan | SQL_ASCII > template0 | pgsql | SQL_ASCII > template1 | pgsql | SQL_ASCII > (5 rows) > > [EMAIL PROTECTED]:~] $ bconsole > Connecting to Director ducky:9101 > 1000 OK: ducky-dir Version: 2.2.6 (10 November 2007) > Enter a period to cancel a command. > *restore > Automatically selected Catalog: MyCatalog > Using Catalog "MyCatalog" > > First you select one or more JobIds that contain files > to be restored. You will be presented several methods > of specifying the JobIds. Then you will be allowed to > select which files from those JobIds are to be restored. > > To select the JobIds, you have the following choices: > 1: List last 20 Jobs run > 2: List Jobs where a given File is saved > 3: Enter list of comma separated JobIds to select > 4: Enter SQL list command > 5: Select the most recent backup for a client > 6: Select backup for a client before a specified time > 7: Enter a list of files to restore > 8: Enter a list of files to restore before a specified time > 9: Find the JobIds of the most recent backup for a client > 10: Find the JobIds for a backup for a client before a specified > time > 11: Enter a list of directories to restore for found JobIds > 12: Cancel > Select item: (1-12): 5 > Automatically selected Client: ducky-fd > Automatically selected FileSet: Full Set > +-------+-------+----------+-------------+--------------------- > +------------+ > | jobid | level | jobfiles | jobbytes | starttime | > volumename | > +-------+-------+----------+-------------+--------------------- > +------------+ > | 2 | F | 20,689 | 344,879,617 | 2008-01-04 22:13:12 | > TestVol001 | > +-------+-------+----------+-------------+--------------------- > +------------+ > You have selected the following JobId: 2 > > Building directory tree for JobId 2 ... +++++++++++++++++++++++++++++ > ++++++++++++++++++ > 1 Job, 19,459 files inserted into the tree. > > You are now entering file selection mode where you add (mark) and > remove (unmark) files to be restored. No files are initially added, > unless > you used the "all" keyword on the command line. > Enter "done" to leave this mode. > > cwd is: / > $ cd /home/dan > cwd is: /home/dan/ > $ ls 2* > 2004-04-29 Z�rich 0001.jpeg > 2004-04-29 Z�rich 0002.jpeg > 2004-05-05 Erg�nzung 0001.jpeg > 2004-05-05 Erg�nzung 0002.jpeg > $ > > $ [EMAIL PROTECTED]:~] $ psql bacula > Welcome to psql 8.2.5, the PostgreSQL interactive terminal. > > Type: \copyright for distribution terms > \h for help with SQL commands > \? for help with psql commands > \g or terminate with semicolon to execute query > \q to quit > > bacula=# > > > In short, I'm on a different version of PostgreSQL and Bacula. > > OK, let me upgrade Bacula to 2.2.7. Nope, that's OK too. So I'm on > the same Bacula and same PostgreSQL as you. > > Don't know what to tell you. :) > > -- > Dan Langille - http://www.langille.org/ > BSDCan - The Technical BSD Conference: http://www.bsdcan.org/ > PGCon - The PostgreSQL Conference: http://www.pgcon.org/ ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users