After deleted user and then re-connect the Flow instance, the flow server may stuck due to the id of the user has changed. For example, if in a Release pipeline, there are a approval gate, and in the gate, "admin" has been assigned, then when we try to open the Release pipeline after re-created the user, web UI will stuck. and you will see a lot of Db WARN messages in commander.log like:
Comments
1 comment
After deleted user and then re-connect the Flow instance, the flow server may stuck due to the id of the user has changed. For example, if in a Release pipeline, there are a approval gate, and in the gate, "admin" has been assigned, then when we try to open the Release pipeline after re-created the user, web UI will stuck. and you will see a lot of Db WARN messages in commander.log like:
2020-12-16T04:12:39.191 | WARN | pool-001-001 | 9729 | | getReleases tx.cleanupAfterThrowing | LoadContexts | HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@241fea3<rs=HikariProxyResultSet@301144572 wrapping com.mysql.jdbc.JDBC42ResultSet@47abbd54>
2020-12-16T04:12:39.191 | WARN | pool-001-001 | 9729 | | getReleases tx.cleanupAfterThrowing | CollectionLoadContext | HHH000160: On CollectionLoadContext#cleanup, localLoadingCollectionKeys contained [1] entries
2020-12-16T04:12:39.192 | DEBUG | pool-001-001 | 9729 | | getReleases | TransactionRetryAspectImpl | Retryable ObjectNotFoundException: 'No row with the given identifier exists: [com.electriccloud.domain.UserEntityImpl#56a5a95c-6406-11ea-8608-0242c2f38ffa]'
The solution is
first, we should get the id of the original admin user using below sql (mysql):
select LOWER(CONCAT_WS('-', SUBSTR(HEX(id), 1, 8), SUBSTR(HEX(id), 9, 4), SUBSTR(HEX(id), 13, 4), SUBSTR(HEX(id), 17, 4), SUBSTR(HEX(id), 21))) as user_id,name from ec_user where name='admin'
and record the id, example: 56a5a95c-6406-11ea-8608-0242c2f38ffa, and convert it to hex string: 0x56a5a95c640611ea86080242c2f38ffa
then :
delete from ec_user where name = 'admin';
and then re-connect flow to this DB instance, after the admin user has been re-created, run:
update ec_user set id=0x56a5a95c640611ea86080242c2f38ffa where name='admin'
Please sign in to leave a comment.