Red Hat Bugzilla – Bug 1004449
Storage node not properly created during upgrade
Last modified: 2015-09-02 20:01:52 EDT
Description of problem:
During 4.9 development the maintenance_pending column was added to the rhq_storage_nodes table, and the maintenancePending field added to StorageNode.java. The field is a primitive boolean. During an upgrade from versions prior to 4.8, a storage node is created with a null value in the maintenance_pending column. This causing the following exception at server start up,
12:06:52,917 INFO [org.rhq.enterprise.server.storage.StorageClientManagerBean] (pool-9-thread-1) Initializing storage client subsystem
12:06:52,934 ERROR [org.jboss.as.ejb3] (pool-9-thread-1) javax.ejb.EJBTransactionRolledbackException: org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of org.rhq.core.domain.cloud.StorageNode.maintenancePending
12:06:52,935 ERROR [org.jboss.as.ejb3.invocation] (pool-9-thread-1) JBAS014134: EJB Invocation failed on component StorageNodeManagerBean for method public abstract java.util.List org.rhq.enterprise.server.cloud.StorageNodeManagerLocal.getStorageNodes(): javax.ejb.EJBTransactionRolledbackException: org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of org.rhq.core.domain.cloud.StorageNode.maintenancePending
Two things need to be done. First, a not-null constraint needs to be added to the dbupgrade script. Secondly, the server installer code that creates the storage node entity needs to set the maintenance_pending column.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
The changes to dbupgrade and to the server installer have been made. I tested this on a 4.7 upgrade.
master commit hash: 8f4561e803
verified -no PropertyAccessException visible anmore - leading to server upgrade (even though not started correctly -- see #1004731)
Bulk closing of RHQ 4.9 verified items