[Spacewalk-list] error on schema upgrade after upgrading to 1.8

Maria Iano maria at purplecoffee.com
Wed Dec 5 09:26:00 UTC 2012


On Dec 5, 2012, at 3:24 AM, Jan Pazdziora wrote:

> On Tue, Dec 04, 2012 at 09:14:31PM -0500, Maria Iano wrote:
>> I have a 32-bit RHEL 5.8 server which was running spacewalk 1.7.
>> Today I upgraded it to 1.8 and that seemed to work without any
>> problems. However, when I ran spacewalk-schema-upgrade it died with
>> this error at the end of the log file:
>>
>>                                 ?column?
>> --------------------------------------------------------------------------
>> spacewalk-schema-1.7-to-spacewalk-schema-1.8/143-novell-package- 
>> keys.sql
>> (1 row)
>>
>> psql:/var/log/spacewalk/schema-upgrade/20121204-162859-script.sql:
>> 2356: ERROR:  duplicate key value violates unique constraint
>> "rhn_pkg_provider_name_uq"
>>
>> I took a look at line 2356 in /var/log/spacewalk/schema-upgrade/ 
>> 20121204-162859-script.sql
>> and here it is with the previous line:
>>
>> insert into rhnPackageProvider (id, name) values
>> (sequence_nextval('rhn_package_provider_id_seq'), 'Novell Inc.' );
>>
>> Out of curiosity I tried restoring the database and running that
>> query on its own and it ran with no error. I tried the upgrade after
>> running that, and also after restoring again but it died both times
>> with the same error.
>
> Did it really die on the exact same line?

Yes it died on the same line. It died with a different error the  
second time, sorry I missed that earlier.  The first time I ran it, it  
died with this error:
psql:/var/log/spacewalk/schema-upgrade/20121204-153735-script.sql: 
2356: ERROR:  duplicate key value violates unique constraint  
"rhn_pkg_provider_id_pk"

After that I restored the database from backup and manually ran:
select * from rhn_package_provider_id_seq;
select * from rhnPackageProvider;
insert into rhnPackageProvider (id, name) values  
(sequence_nextval('rhn_package_provider_id_seq'), 'Novell Inc.' );
select * from rhnPackageProvider;
select * from rhn_package_provider_id_seq;

and I'll paste in the output below. It had the expected effect of  
adding " Novell Inc." to rhnPackageProvider. After that I ran  
spacewalk-schema-upgrade and the error message was:
psql:/var/log/spacewalk/schema-upgrade/20121204-162859-script.sql: 
2356: ERROR:  duplicate key value violates unique constraint  
"rhn_pkg_provider_name_uq"

spaceschema=# select * from rhn_package_provider_id_seq;
         sequence_name        | last_value | start_value |  
increment_by |      max_value      | min_value |
cache_value | log_cnt | is_cycled | is_called
-----------------------------+------------+-------------+-------------- 
+---------------------+-----------+-
------------+---------+-----------+-----------
  rhn_package_provider_id_seq |        108 |         100 |             
1 | 9223372036854775807 |         1 |
           1 |      32 | f         | t
(1 row)

spaceschema=# select * from rhnPackageProvider;
  id  |       name       |            created            |            
modified
-----+------------------+------------------------------- 
+-------------------------------
  100 | Red Hat Inc.     | 2012-05-11 17:05:11.399089-04 | 2012-05-11  
17:05:11.399089-04
  101 | Fedora           | 2012-05-11 17:05:11.401747-04 | 2012-05-11  
17:05:11.401747-04
  102 | CentOS           | 2012-05-11 17:05:11.403533-04 | 2012-05-11  
17:05:11.403533-04
  103 | Scientific Linux | 2012-05-11 17:05:11.404611-04 | 2012-05-11  
17:05:11.404611-04
  105 | Oracle Inc.      | 2012-05-11 17:05:11.407241-04 | 2012-05-11  
17:05:11.407241-04
  106 | Spacewalk        | 2012-05-11 17:05:11.408151-04 | 2012-05-11  
17:05:11.408151-04
  107 | EPEL             | 2012-05-11 17:05:11.409168-04 | 2012-05-11  
17:05:11.409168-04
  108 | VMware           | 2012-05-23 13:45:15.527746-04 | 2012-05-23  
13:45:15.527746-04
  104 | SUSE             | 2012-05-11 17:05:11.406173-04 | 2012-12-04  
15:46:36.020452-05
(9 rows)

spaceschema=# insert into rhnPackageProvider (id, name) values  
(sequence_nextval('rhn_package_provider_id_seq'), 'Novell Inc.' );
INSERT 0 1

spaceschema=# select * from  
rhnPackageProvider 
;                                                             id   
|       name       |            created            |           modified
-----+------------------+------------------------------- 
+-------------------------------
  100 | Red Hat Inc.     | 2012-05-11 17:05:11.399089-04 | 2012-05-11  
17:05:11.399089-04
  101 | Fedora           | 2012-05-11 17:05:11.401747-04 | 2012-05-11  
17:05:11.401747-04
  102 | CentOS           | 2012-05-11 17:05:11.403533-04 | 2012-05-11  
17:05:11.403533-04
  103 | Scientific Linux | 2012-05-11 17:05:11.404611-04 | 2012-05-11  
17:05:11.404611-04
  105 | Oracle Inc.      | 2012-05-11 17:05:11.407241-04 | 2012-05-11  
17:05:11.407241-04
  106 | Spacewalk        | 2012-05-11 17:05:11.408151-04 | 2012-05-11  
17:05:11.408151-04
  107 | EPEL             | 2012-05-11 17:05:11.409168-04 | 2012-05-11  
17:05:11.409168-04
  108 | VMware           | 2012-05-23 13:45:15.527746-04 | 2012-05-23  
13:45:15.527746-04
  104 | SUSE             | 2012-05-11 17:05:11.406173-04 | 2012-12-04  
15:46:36.020452-05
  109 | Novell Inc.      | 2012-12-04 16:06:35.073876-05 | 2012-12-04  
16:06:35.073876-05
(10 rows)

spaceschema=# select * from  
rhn_package_provider_id_seq 
;                                                            
sequence_name        | last_value | start_value | increment_by |       
max_value      | min_value |
cache_value | log_cnt | is_cycled | is_called
-----------------------------+------------+-------------+-------------- 
+---------------------+-----------+-
------------+---------+-----------+-----------
  rhn_package_provider_id_seq |        109 |         100 |             
1 | 9223372036854775807 |         1 |
           1 |      32 | f         | t
(1 row)


>
>> Has anyone else come across this?
>
> Can you check that
>
> 	/var/log/spacewalk/schema-upgrade/20121204-162859-script.sql
>
> script to see if the line 2356 is indeed the first line in the script
> which mentions "Novell Inc."? Clearly, when you restore and run that
> command, it passes, so the record with name "Novell Inc." is not in
> your rhnPackageProvider table. Then on line 2356 it is there.
> I suspect there is something earlier in the script which inserts it
> there.

I thought there must be too, but I can't find it. The first occurrence  
in 20121204-162859-script.sql of 'Novell Inc' is on that line.

# grep -in 'Novell Inc' /var/log/spacewalk/schema-upgrade/ 
20121204-162859-script.sql
2356:(sequence_nextval('rhn_package_provider_id_seq'), 'Novell Inc.' );
2358:update rhnPackageKey set provider_id =  
lookup_package_provider('Novell Inc.')
2360:update rhnPackageKey set provider_id =  
lookup_package_provider('Novell Inc.')
2362:update rhnPackageKey set provider_id =  
lookup_package_provider('Novell Inc.')
2364:update rhnPackageKey set provider_id =  
lookup_package_provider('Novell Inc.')
2368:    (select sequence_nextval('rhn_pkey_id_seq'),  
'2afe16421d061a62', lookup_package_key_type('gpg'),  
lookup_package_provider('Novell Inc.') from dual
2371:    (select sequence_nextval('rhn_pkey_id_seq'),  
'14c28bc97e2e3b05', lookup_package_key_type('gpg'),  
lookup_package_provider('Novell Inc.') from dual
2374:    (select sequence_nextval('rhn_pkey_id_seq'),  
'478a32e8a1912208', lookup_package_key_type('gpg'),  
lookup_package_provider('Novell Inc.') from dual
2377:    (select sequence_nextval('rhn_pkey_id_seq'),  
'73d25d630dfb3188', lookup_package_key_type('gpg'),  
lookup_package_provider('Novell Inc.') from dual

Is there something that runs before that script?

At this point I have restored the database again. Then I ran the  
commands below for not any good reason, just wondered if they might  
help. I'm not familiar with postgresql, I need to read up on it. I  
haven't tried running the schema upgrade again.

# reindex index rhn_pkg_provider_name_uq;
# analyze;

Thank you for your help!
Maria





More information about the Spacewalk-list mailing list