[ 
https://issues.apache.org/jira/browse/DAFFODIL-2510?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17373719#comment-17373719
 ] 

Mike Beckerle commented on DAFFODIL-2510:
-----------------------------------------

I am debugging an interesting issue right now.

I have a failure because when the logLevel is Debug, a log statement executes, 
and that log statement constructs a diagnostic string from some args, and 
evaluating one of those args causes a stack overflow.

When debug level is Info, the error doesn't occur.

This suggests we need to test Daffodil with maximum log level. All tests should 
still work with full logging turned on.

Right now, with the log calls being effectively debug print statements, this 
would take a very long time to run, but may be worth doing at some frequency in 
regression, and if the number of log calls is reduced to something more 
sensible, then this shouldn't be too bad.

 

> Thread Safety: Improve Logger/Logging 
> --------------------------------------
>
>                 Key: DAFFODIL-2510
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2510
>             Project: Daffodil
>          Issue Type: Bug
>          Components: Back End, CLI, Front End, Libraries, Middle 
> "End", TDML Runner
>    Affects Versions: 3.0.0
>            Reporter: Mike Beckerle
>            Assignee: Steve Lawrence
>            Priority: Major
>
> Every object that mixes in the Logging trait gets its own mutable vars for 
> logWriter and logLevel, and if not set, shares a single global state in the 
> LoggingDefaults object.
> This is not thread safe. At minimum LoggingDefaults should be a ThreadLocal.
> Furthermore, those objects don't need independent ability to specify a unique 
> logger or logging level. They should be sharing a logger supplied by the 
> application.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to