Hey Dan,
thiswould be great, as it would allow anyone who can reproduce a bug
maybe 1 out of 10 times, to record the failed session and then send the
captured data to a dev who could then replay it to see what went wrong.
If you can make a demo of this and present this at the f2f in Berlin,
that would be great !
I think this would be a very valuable tool in our toolset to handle
almost non-reproduceable bugs.
On 09/15/2015 07:32 AM, Dan Berindei wrote:
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
_______________________________________________
infinispan-dev mailing list
infinispan-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev