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

Reply via email to