Details
-
Bug
-
Resolution: Fixed
-
Low
-
6.2.3
-
None
-
6
-
Severity 2 - Major
-
1
-
Description
Summary
The audit log events are processed by a thread that can silently fail and stop running.
Steps to Reproduce
Using PostgreSQL to easily introduce a failure writing to the audit table
- Revoke privileges for the Bamboo database user on the audit table:
REVOKE ALL PRIVILEGES ON TABLE AUDIT_LOG FROM bamboo;
- Make a change to a plan that will be audited such as overriding concurrent max builds: Plan Configuration >> Miscellaneous
- There will be an exception writing to AUDIT_LOG table
- The audit log thread will die and nothing further will log even after restoring permission:
ALTER TABLE AUDIT_LOG OWNER TO bamboo; GRANT ALL PRIVILEGES ON TABLE AUDIT_LOG TO bamboo;
Expected Results
Audit log thread is robust and continues even after encountering an exception.
Actual Results
AuditLogSaveThread is no longer running. Example of the idle thread:
"AuditLogSaveThread" #37 daemon prio=5 os_prio=0 tid=0x00007fc79bb90000 nid=0x1231 waiting on condition [0x00007fc78dffa000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00000000c6702bb8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at com.atlassian.bamboo.persister.DefaultAuditLogService$LoggerThread.run(DefaultAuditLogService.java:125)
Workaround
Restart Bamboo
Attachments
Issue Links
- mentioned in
-
Page Loading...