User Tools
Writing /app/www/public/data/meta/onboarding/ticketer/troubleshooting_-_ticket_cannot_advance_state.meta failed
onboarding:ticketer:troubleshooting_-_ticket_cannot_advance_state
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| onboarding:ticketer:troubleshooting_-_ticket_cannot_advance_state [2017/08/30 12:29] – mmcc | onboarding:ticketer:troubleshooting_-_ticket_cannot_advance_state [2021/06/25 10:09] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Troubleshooting - Ticket cannot advance state ====== | ||
| + | Author: Michelle McCausland | ||
| + | |||
| + | ===== Example Support Request ===== | ||
| + | //Example support ticket - SUPPORT-490// | ||
| + | |||
| + | < | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Solution ===== | ||
| + | |||
| + | Attempting to recreate this issue showed the following in the logs: | ||
| + | |||
| + | < | ||
| + | 2017-08-28 17: | ||
| + | 2017-08-28 17: | ||
| + | 2017-08-28 17: | ||
| + | 2017-08-28 17: | ||
| + | org.springframework.dao.DataIntegrityViolationException: | ||
| + | at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java: | ||
| + | at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java: | ||
| + | at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java: | ||
| + | at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java: | ||
| + | at org.codehaus.groovy.grails.orm.hibernate.metaclass.SavePersistentMethod.performSave(SavePersistentMethod.java: | ||
| + | at org.codehaus.groovy.grails.orm.hibernate.metaclass.AbstractSavePersistentMethod.doInvokeInternal(AbstractSavePersistentMethod.java: | ||
| + | at org.codehaus.groovy.grails.orm.hibernate.metaclass.AbstractDynamicPersistentMethod.invoke(AbstractDynamicPersistentMethod.java: | ||
| + | at org.codehaus.groovy.grails.commons.metaclass.DynamicMethodInvocation$invoke.call(Unknown Source) | ||
| + | at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java: | ||
| + | at org.codehaus.groovy.grails.commons.metaclass.DynamicMethodInvocation$invoke.call(Unknown Source) | ||
| + | at org.codehaus.groovy.grails.orm.hibernate.HibernateGormInstanceApi.save(HibernateGormEnhancer.groovy: | ||
| + | at com.errigal.ticketer.PersistedTask.save(PersistedTask.groovy) | ||
| + | at com.errigal.ticketer.PersistedTask$save.call(Unknown Source) | ||
| + | at com.errigal.ticketer.Ticket.scheduleAutoEscalate(Ticket.groovy: | ||
| + | at com.errigal.ticketer.Ticket$scheduleAutoEscalate.callCurrent(Unknown Source) | ||
| + | at com.errigal.ticketer.Ticket.updateState(Ticket.groovy: | ||
| + | at com.errigal.ticketer.Ticket.this$2$updateState(Ticket.groovy) | ||
| + | </ | ||
| + | |||
| + | |||
| + | Googling the following phrase "Data truncation: Out of range value for column" | ||
| + | |||
| + | In the Ticket.groovy code the PersistedTask section converts time to milliseconds in order to schedule its updates. | ||
| + | |||
| + | As you can see from the logs above the value was 6048000000ms! | ||
| + | |||
| + | Opening up the workflow to the state in question confirmed this: | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | 10 weeks = 6048000000 ms | ||
| + | |||
| + | < | ||
| + | DESC persisted_task; | ||
| + | |||
| + | +---------------------+---------------+------+-----+---------+----------------+ | ||
| + | | Field | Type | Null | Key | Default | Extra | | ||
| + | +---------------------+---------------+------+-----+---------+----------------+ | ||
| + | | id | bigint(20) | ||
| + | | closure_string | ||
| + | | description | ||
| + | | execute_date | ||
| + | | executed | ||
| + | | repeatable | ||
| + | | repeatable_interval | int(11) | ||
| + | +---------------------+---------------+------+-----+---------+----------------+ | ||
| + | |||
| + | </ | ||
| + | |||
| + | The repeat_interval column' | ||
| + | |||
| + | In order to verify this, the escalation time was set to 3 weeks instead of 10. This corrected the issue. | ||
| + | |||
| + | As it is not a viable option to just reduce the time, the column needed to be changed. | ||
| + | |||
| + | |||
| + | The following query was run to accommodate this change: | ||
| + | |||
| + | < | ||
| + | ALTER TABLE persisted_task MODIFY COLUMN repeatable_interval bigint; | ||
| + | </ | ||
| + | |||
| + | |||
| + | < | ||
| + | DESC persisted_task; | ||
| + | |||
| + | +---------------------+---------------+------+-----+---------+----------------+ | ||
| + | | Field | Type | Null | Key | Default | Extra | | ||
| + | +---------------------+---------------+------+-----+---------+----------------+ | ||
| + | | id | bigint(20) | ||
| + | | closure_string | ||
| + | | description | ||
| + | | execute_date | ||
| + | | executed | ||
| + | | repeatable | ||
| + | | repeatable_interval | bigint(20) | ||
| + | +---------------------+---------------+------+-----+---------+----------------+ | ||
| + | |||
| + | </ | ||
| + | |||
| + | Increasing the escalate period back to 10 weeks and testing verified this corrected the issue! | ||