Hi Bela
I was able to reuse the configuration created by IntelliJ and run my
test in a loop outside the IDE, until I reproduced it. Unfortunately,
when I was tracing all of JGroups, it was also harder to reproduce,
the test JVM was crashing a lot, and I also had problems loading the
trace in the IDE.
I'll see if I can get a demo working for the November meeting, but
this was how I managed to reproduce it:
1. Figure out where the chronon configuration and recording are
stored, in my case:
CHRONON_DIR=$HOME/.IntelliJIdea14/system/chronon-recordings/2015_09_08_FullSyncWriteSkewTotalOrderTest_testPut1/
2. Copy the agent parameters from the IntelliJ console to
MAVEN_FORK_OPTS (this is Infinispan-specific, if maven-surefire isn't
forking you can use MAVEN_OPTS instead):
export
MAVEN_FORK_OPTS="-javaagent:$HOME/.IntelliJIdea14/config/plugins/chronon/lib/recorder/recorder-3.70.0.200.jar=$CHRONON_DIR/config.txt
-agentpath:$HOME/.IntelliJIdea14/config/plugins/chronon/lib/recorder/native/librecorderagent64-3.0.7.so
-noverify"
3. Run these in a loop until you get a test failure:
rm -rf $CHRONON_DIR/*/ \
mvn test -pl core
'-Dtest=org.infinispan.tx.totalorder.simple.dist.FullSyncWriteSkewTotalOrderTest#testPut'
4. Open $CHRONON_DIR in IntelliJ with Run -> Open Chronon Recording.
5. Enjoy debugging backwards in time... Well, I haven't got to the
point where I enjoy it yet, but I think I made some progress :)
Cheers
Dan
On Tue, Sep 15, 2015 at 12:12 PM, Bela Ban <bban(a)redhat.com> wrote:
Hi Dan,
what a coincidence, I tried Chronon as well, but outside of IDEA as it
requires the commercial version and I only have the community version...
However, using something like Chronos is certainly worth looking into,
for all of us, as (as you mentioned) you only need to reproduce the
error once and can then go back in time to see the stack, variables etc,
so you know exactly what's going on.
If someone gets Chronos (or any other time travelling debugger) to work,
this would be worth a demo at our November meeting, and would add a tool
of tremendous value to our common toolset !
Any takers ?
On 09/15/2015 03:19 AM, Dan Berindei wrote:
> Hi guys
>
> Sorry for missing the meeting yesterday, I was out most of the day.
>
> I started last week trying to help Bela with the TCP_NIO2 problems. I
> wasn't quite satisfied with JGroups' logging, so I tried to use the
> Chronon embedded with IntelliJ to debug the tests. In theory it's nice
> because you only have to reproduce a random failure once, and you can
> replay the trace as many times as you want, but I got IntelliJ to hang
> way too many times, so I had to give up. Bela fixed the correctness
> problem by himself, but the test suite is about 50% slower with
> TCP_NIO2, so we can't use it instead of TCP without further
> investigation.
>
> Then I got back to ISPN-5699, and after a lot of fiddling with the
> EntryFactoryImpl methods and fixing failing tests, this morning I
> finally issued the PR.
>
> This week, I need to look into a replicated-mode read performance
> regression, and then get back to the sequential interceptor
> interfaces.
>
> Cheers
> Dan
>
>
> On Mon, Sep 14, 2015 at 6:46 PM, Tristan Tarrant <ttarrant(a)redhat.com> wrote:
>> Hi all,
>>
>> here are the meeting minutes from today's IRC meeting:
>>
>>
http://transcripts.jboss.org/meeting/irc.freenode.org/infinispan/2015/inf...
>>
>> Enjoy
>>
>> Tristan
>> --
>> Tristan Tarrant
>> Infinispan Lead
>> JBoss, a division of Red Hat
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/infinispan-dev
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/infinispan-dev
_______________________________________________
infinispan-dev mailing list
infinispan-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev