49 views

Description

User sessions with higher client-side latency present task forms in increased time windows allowing duplicate submits. The UI tries to solve this with a form mask that prevents multiple "Submit" clicks, but in some cases duplicate submissions are possible, depending on network traffic affecting the client session.

Steps to Reproduce

 

1 - Using Chrome, emulate client latency with the built-in network throttling feature.
2 - Login an early Jakarta instance as administrator.
3 - Click Incident > Create New .
4 - Fill out the mandatory fields.
5 - Open Chrome Developer Tools.
6 - In Network tab, set "Throttling" to the slowest option: "GPRS (500ms, 50kb/s, 20kb/s)".
7 - Click Submit. Notice a slightly opaque form submit mask will cover the form, wait for it to go away after a few seconds.
8 - Click Submit again. Repeat as many times as the submit mask goes away to allow it. Observe the duplicate key constraint on Primary Key with a user-facing message asserting "Invalid Insert".
9 - Click Submit again. Observe two incident records have been created with the same task number.

Workaround

Enable a unique index on the dictionary definition of the affected table. While unique indexes ensure data integrity preventing any insert involving a duplicate number, this may cause unexpected errors during data entry, and can not be implemented before having amended the existing data.
 
It is also possible to impose the unique numbering via a Business Rule (running on the server side), so that duplicate numbers can not be stored, blocking the record insertion. Before an insert, the business rule script should make sure that a new number is generated and assigned to the new record.
 
 
This problem has been partially fixed in Kingston and late Jakarta, where the UI Actions handling code has been amended to trace the las action performed and attempt to inhibit repeated submissions. While the issue is mitigated since the fix, the new problem PRB1265879/KB0711945 is being investigated at the time of publishing this known error article.
 

Related Problem: PRB1077509

Seen In

There is no data to report.

Fixed In

Jakarta Patch 6
Kingston

Associated Community Threads

There is no data to report.

Article Information

Last Updated:2018-09-06 07:02:56
Published:2018-09-06