RHEVM 3.2 to RHEVM 3.3 upgrade process failed with error "duplicate key value violates unique constraint "pk_storage".

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Virtualization 3.3

Issue

  • RHEVM 3.2 to RHEVM 3.3 upgrade process failed with error "duplicate key value violates unique constraint "pk_storage".

Resolution

  • Red Hat engineering is currently working on this issue through private bugzilla.

  • For now as a workaround, to avoid this error during upgrade process, please select option "No" for ISO Domain question.

Root Cause

  • The rhevm upgrade aborted due to duplicate value found in RHEVM DB for ISO domain.

Diagnostic Steps

  • found below errors in logs.
2014-03-12 16:55:23 DEBUG otopi.context context._executeMethod:123 Stage misc METHOD otopi.plugins.ovirt_engine_setup.config.iso_domain.Plugin._add_iso_domain_to_db
2014-03-12 16:55:23 DEBUG otopi.plugins.ovirt_engine_setup.config.iso_domain iso_domain._add_iso_domain_to_db:410 Adding ISO domain into DB
2014-03-12 16:55:23 DEBUG otopi.ovirt_engine_setup.database database.execute:123 Database: 'engine', Statement: '
                select inst_add_iso_storage_domain(
                    %(storage_domain_id)s,
                    %(name)s,
                    %(connection_id)s,
                    %(connection)s,
                    %(available)s,
                    %(used)s
                )
            ', args: {'available': 0, 'connection': 'rhevm.softcell.com:/exports/ISO', 'used': 0, 'name': 'ISO_DOMAIN', 'storage_domain_id': 'b1f0e7bf-31a4-4055-8fb5-98e8bbc8684a', 'connection_id':
 'fa99f530-d8bf-46b9-8f56-8c144864ab1d'}
2014-03-12 16:55:24 DEBUG otopi.context context._executeMethod:137 method exception
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/otopi/context.py", line 127, in _executeMethod
    method['method']()
  File "/usr/share/ovirt-engine/setup/bin/../plugins/ovirt-engine-setup/config/iso_domain.py", line 437, in _add_iso_domain_to_db
    used=0,
  File "/usr/share/ovirt-engine/setup/ovirt_engine_setup/database.py", line 155, in execute
    args,
InternalError: NUM:23505, DETAILS:duplicate key value violates unique constraint "pk_storage"

2014-03-12 16:55:24 ERROR otopi.context context._executeMethod:146 Failed to execute stage 'Misc configuration': NUM:23505, DETAILS:duplicate key value violates unique constraint "pk_storage"
  • The below logs shows that during upgrade process option "Yes" selected for setting up ISO domain which cause conflict with already existing ISO domain entry in DB and the upgrade process failed with error "duplicate key value violates unique constraint "pk_storage".
2014-03-12 16:29:41 DEBUG otopi.plugins.otopi.dialog.human dialog.__logString:215 DIALOG:SEND                 Configure an NFS share on this server to be used as an ISO Domain? (Yes, No) [Yes]: 
2014-03-12 16:29:43 DEBUG otopi.context context.dumpEnvironment:441 ENVIRONMENT DUMP - BEGIN
2014-03-12 16:29:43 DEBUG otopi.context context.dumpEnvironment:456 ENV OVESETUP_SYSTEM/nfsConfigEnabled=bool:'True'
2014-03-12 16:29:43 DEBUG otopi.context context.dumpEnvironment:458 ENVIRONMENT DUMP - END
2014-03-12 16:29:43 DEBUG otopi.context context._executeMethod:123 Stage customization METHOD otopi.plugins.ovirt_engine_setup.config.iso_domain.Plugin._customization
2014-03-12 16:29:43 DEBUG otopi.plugins.otopi.dialog.human dialog.__logString:215 DIALOG:SEND                 Local ISO domain path [/var/lib/exports/iso]: 
2014-03-12 16:30:19 DEBUG otopi.plugins.otopi.dialog.human dialog.__logString:215 DIALOG:RECEIVE    /exports/ISO
2014-03-12 16:30:19 DEBUG otopi.ovirt_engine_setup.domains domains.check_valid_path:90 validate '/exports/ISO' as a valid mount point
2014-03-12 16:30:19 DEBUG otopi.ovirt_engine_setup.domains domains.check_base_writable:104 Attempting to write temp file to /exports/ISO
2014-03-12 16:30:19 DEBUG otopi.ovirt_engine_setup.domains domains.check_available_space:122 Checking available space on /exports/ISO
2014-03-12 16:30:19 DEBUG otopi.ovirt_engine_setup.domains domains.check_available_space:129 Available space on /exports/ISO is 19745Mb
2014-03-12 16:30:19 DEBUG otopi.plugins.ovirt_engine_setup.config.iso_domain iso_domain._get_domain:104 Using existing uuid for ISO domain
2014-03-12 16:30:19 DEBUG otopi.plugins.otopi.dialog.human dialog.__logString:215 DIALOG:SEND                 Local ISO domain name [ISO_DOMAIN]: 
2014-03-12 16:30:55 DEBUG otopi.context context.dumpEnvironment:441 ENVIRONMENT DUMP - BEGIN
2014-03-12 16:30:55 DEBUG otopi.context context.dumpEnvironment:456 ENV OVESETUP_CONFIG/isoDomainMountPoint=str:'/exports/ISO'
2014-03-12 16:30:55 DEBUG otopi.context context.dumpEnvironment:456 ENV OVESETUP_CONFIG/isoDomainName=str:'ISO_DOMAIN'
2014-03-12 16:30:55 DEBUG otopi.context context.dumpEnvironment:456 ENV OVESETUP_CONFIG/isoDomainSdUuid=str:'b1f0e7bf-31a4-4055-8fb5-98e8bbc8684a'
2014-03-12 16:30:55 DEBUG otopi.context context.dumpEnvironment:458 ENVIRONMENT DUMP - END

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments