On Mon, Jul 18, 2011 at 11:42 AM, John Admanski <[email protected]> wrote:
> This seems reasonable. My only concern would be that there could be
> cases which now don't log at all; for example on a server test that
> client/bin/parallel.py code isn't likely to be in use. Still, it does
> re-raise the exception so it's likely to get logged somewhere, I would
> hope.

Yes, the exceptions on a server job are going to be logged (look on
server_job.run_test). I've applied the patch, if any of you have
problems with it, let me know.

http://autotest.kernel.org/changeset/5503

> -- John
>
> On Sun, Jul 17, 2011 at 8:55 PM, Lucas Meneghel Rodrigues
> <[email protected]> wrote:
>> Currently, in both the test code and the parallel execution
>> code we log the exceptions that happened during a test's
>> execution, which means we log the same exception in 2 different
>> places. It looks like too much error duplication in logs. Also,
>> even exceptions that we expect to see in logs, such as
>> error.TestFail (which basically marks a test as FAILed) will
>> produce the same result.
>>
>> So, let's just log the exceptions as DEBUG messages on client's
>> debug log. This way, test authors can still see errors and
>> debug their test code if they chose to execute autotest with
>> --verbose or look at the DEBUG logs of the client.
>>
>> Signed-off-by: Lucas Meneghel Rodrigues <[email protected]>
>> ---
>>  client/bin/parallel.py    |    3 ++-
>>  client/common_lib/test.py |    5 -----
>>  2 files changed, 2 insertions(+), 6 deletions(-)
>>
>> diff --git a/client/bin/parallel.py b/client/bin/parallel.py
>> index c426968..cb02082 100644
>> --- a/client/bin/parallel.py
>> +++ b/client/bin/parallel.py
>> @@ -26,7 +26,8 @@ def fork_start(tmp, l):
>>                 logging.error('child process failed')
>>                 # logging.exception() uses ERROR level, but we want DEBUG for
>>                 # the traceback
>> -                logging.debug(traceback.format_exc())
>> +                for line in traceback.format_exc().splitlines():
>> +                    logging.debug(line)
>>             finally:
>>                 # note that exceptions originating in this block won't make 
>> it
>>                 # to the logs
>> diff --git a/client/common_lib/test.py b/client/common_lib/test.py
>> index a1d68ab..ccca585 100644
>> --- a/client/common_lib/test.py
>> +++ b/client/common_lib/test.py
>> @@ -417,11 +417,6 @@ class base_test(object):
>>
>>                 _call_test_function(self.execute, *p_args, **p_dargs)
>>             except Exception:
>> -                try:
>> -                    logging.exception('Exception escaping from test:')
>> -                except:
>> -                    pass # don't let logging exceptions here interfere
>> -
>>                 # Save the exception while we run our cleanup() before
>>                 # reraising it.
>>                 exc_info = sys.exc_info()
>> --
>> 1.7.6
>>
>>
> _______________________________________________
> Autotest mailing list
> [email protected]
> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
>



-- 
Lucas
_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to