Welcome to the new Parasoft forums! We hope you will enjoy the site and try out some of the new features, like sharing an idea you may have for one of our products or following a category.

Getting corrupted tca.log when files are merging

LegacyForum
LegacyForum Posts: 1,664 ✭✭
edited December 2016 in Insure++
Is possible to merge tca.log files ?
Hello,

We are running many unit tests, each of them is a separated executable. They are run by a script one by one. Insure is merging tca.log files after each run, however, after some random spot we get report that tca.log file is corrupted and the merge fails. If we configure Insure to generate tca.log separately, the tca.log files are generated and can by viewed by "TCA -X <tca.log.1> <tca.log.2> ...". If we try to run "TCA -X" on the corrupted tca.log, we get this error responses:

on Linux64:
>TCA -X tca.log
*** TCALogFile::processRecord: size mismatch: 3 > 0

on Solaris:
>TCA -X tca.log
*** TCALogFile::processRecord: unknown tag 1668444975

(we build and run unit tests for both platforms)

We can view the tca.log files when we specify them all in a row in "TCA -X" command, however, it is a bit cumbersome (there are too many logfiles). Is there a way to merge them all in one tca.log file so it can be viewed by "TCA -X"?

Thanks,

Roman
Tagged:

Comments

  • LegacyForum
    LegacyForum Posts: 1,664 ✭✭
    edited April 2007
    Hi Roman,

    When you had Insure++ configured to use only one tca.log file, did you ever run multiple instances of your program(s), simultaneously?

    If so, then the corruption was probably due to multiple simultaneous access to the tca.log file, (race condition.) This can be fixed by using the following option:

    Insure++.use_lockf 10

    This option will cause Insure++ to attempt to lock the log file prior to writing to it, and will wait upto 10 seconds to acquire the lock, (we've found this to be an optimal metric for most uses.)

    There is really no external tool to merge multiple tca.log files.

    However, if your files are tca.log.1, tca.log.2, etc, then you could easily do:

    TCA -X tca.log.*

    --Rich