Announcing Chronon 4 ‘Ops’ Preview

Posted by Prashant Deva on December 4, 2012

It was never just about debugging. When we started making Chronon from day 1, the vision was always to do something greater with all the captured data. Thus, today we are announcing the preview of Chronon 4 ‘Ops‘; a revolutionary monitoring and analytics tool.

I will keep my words in this blog post to a minimum, and let the demo of the product do the talking. We have a full page describing Chronon 4.

Make sure to watch the video and read the whitepaper.

>> Learn more about Chronon 4


Chronon coming soon to Jelastic

Posted by Prashant Deva on November 26, 2012


I am pleased to announce our new partner in crime Jelastic!

For those who don’t know, Jelastic is the new, super awesome PAAS for Java which allows you to easily deploy your Java applications and automatically scale them. Unlike AWS, Jelastic allocates server resources dynamically, so if your Java program is sitting idle, you are not getting charged for any extra cpu/memory. This also means you don’t have to deal with careful resource planning, since if your program needs needs more horsepower, Jelastic will automatically scale up and then down when not needed, charging you only for what was actually used.

For Jelastic users, begining in early Q1 2013, we are bringing the Chronon Recording Server. You will be able to install Chronon Recording Server with just a few clicks on your Jelastic apps and get rid of ever trying to reproduce bugs!

If you want to use Chronon on Jelastic right now, you can still use Embedded Chronon to do so.

Chronon and Vaadin join forces

Posted by Prashant Deva on November 16, 2012


Discovering Vaadin

Last year when designing our Chronon Recording Server, we were looking to choose a nice web framework among the tons available for Java. Now, at Chronon, we love Java but we are no experts at javascript. In fact the weakly typed nature of javascript and the cross-browser issues makes me cringe at the thought of using it for large scale applications. That said, if you want to create a modern day web app, you gotta get down and dirty with it.

Thus our first choice was GWT which allows keeping all our code in Java and dealing with javascript at a minimum. However, when we started looking at GWT we realized it was really a disparate bunch of components and we still had to do a lot of work to create a ‘framework’ around it that would make those components work together well in an actual application.

That is when we ran into Vaadin; and it was love at first sight! Vaadin allowed us to create a full modern looking web application entirely in Java, almost like a Swing application, without even knowing there was any javascript/css involved. The components and themes out of the box were already beautiful and modern looking and to change the look we didnt have to resort to a ton of css hacks. It was nirvana and we now cant think of using any other framework!

Desperation turned love affair

That said, as is true with all things real life, we did run into some issues, of our own making mind you. Apparently we were using a 3rd party Vaadin component ‘ICEPush’, to allow automatic ajax-push in our web applications. The problem was that once in a while the ‘push’ would somehow cause the UI to become all gobbldygook. A lot of our customers were reporting this issue too. Although refreshing the page would make things go away, it was definitely annoying for the people using our product.

So we turned to Vaadin’s Commercial Support to see if they could solve the issue. And as would be expected, the support team asked to somehow replicate the issue on their side, so they could go with a debugger to look for the issue. Now here is the thing about the Chronon Recording Server, to replicate an issue in it, you have to setup a bunch of processes: the recording server process, the controllers, the java apps that will be recorded. Once you have done that, the support person has to play with the GUI for an indefinite amount of time before they run into that error, and *hopefully* they will have a breakpoint set in a location which will allow them to find the root cause of an issue. And if they miss putting the breakpoint in the right place, they have to try all this all over again. Also did I mention, we would have to send them our entire source code so they can look at where exactly we call icepush from our code. As you can at this point, we are at an almost impossible situation to reproduce and resolve the issue. It could take many, many weeks to solve this and we would end up spending a ton of money to purchase all those support hours.

That is when it dawned upon me. Why not use the Chronon Recorder to record our Chronon Recording Server! So we made a Chronon recording of the bug on our side and handed it to the Vaadin Support Team to playback in the Chronon Time Travelling Debugger. The bug was solved in 20 minutes flat!

Yes, something that would have taken weeks of time, and tons of effort on both teams to communicate the issues, and cost us thousands if not tens of thousands of dollars was solved in 20 minutes, with no communication required, other than sending the recording file!

Vaadin and Chronon, now together

As you can guess, both the Chronon and Vaadin executive team thought we should definitely take this to the next level. So from today, Chronon is now part of Vaadin’s Pro Account. If you are a Vaadin Pro account user, if you contact their support team with an issue, they will send you a free copy of Embedded Chronon which you can use to record the bug in your application. Then you can just send them the recording and that is all that is needed for the team to replicate and resolve your issue. No need to create sample programs or going through tons of hours of communication to set up things on the other side to reproduce the issue. You can even send them a recording created using Chronon Recording Server or Chronon Time Travelling Debugger and they will make use of it. 

We believe this partnership will help Vaadin users to not only rapidly create rich web applications but also not worry about any issues or long standing bugs in them.

Learn more about Vaadin and their amazing framework and their Pro Account Services.


Chronon 3.1: No more crashes during time travel

Posted by Prashant Deva on November 14, 2012

Its not even been 2 weeks and 3.1 is already here! We told you we will be releasing fast from now on.

3.1 is a bugfix release.

If you had any issues with the debugger, eg NullPointerExceptions, unpacking issues, etc; they should all be fixed now.

For the Recording Server, all issues with recorder crashing or corrupt recordings should be fixed. If you have an existing Chronon 3 Recording Server installation, you dont need to update the controller processes. Also if your Chronon 2 trial has expired, you should now see a form to automatically download an updated trial license (instead of needing to send us a mail).

We have had great feedback on the improved performance of Chronon! Enjoy!

See how Nokia uses Chronon to diagnose SMS processing issues

Posted by Prashant Deva on November 12, 2012

As Nokia has expanded into the Smartphone market and experienced new competitive pressures its reliance on a back end to complete connections and develop greater efficiencies and provide Value-Added Services, VAS, for media processing, gateway, and signalling. Rapid growth, the billions of signals being processed and reliability of the backend to process these requests has put insurmountable pressure on developers to quickly resolve complex issues and provide a reliable back end for customers.

Read More

Chronon Systems is an Eclipse Foundation Solutions Member

Posted by Prashant Deva on

Eclipse is an open source project which has been established as the de facto standard IDE for Java application development. The Chronon Eclipse plug-in enables you to record an application from Eclipse, and replay recordings in Eclipse, using our special time traveling debugger.

Inside Chronon 3 Recorder: How we achieved the magical speed boost

Posted by Prashant Deva on November 9, 2012

We released Chronon 3 last week with an order of magnitude performance improvement. Let’s take a look under the hood to see what makes it all tick!

The Recipe

Look at the source code of any computer program. You can pretty much predict what it is going to do, given you had some extra info like what branch will be taken and/or what the return value of a particular method call is.


In the code below, if you knew the value of ‘a’, you could predict whether ‘even’ or ‘odd’ will be printed.


Chronon 3′s recorder follows a similar principal. It instruments the bytecode of you program as its loaded and does static analysis on it to come up with an initial set of ‘predictions’ as to how your program will behave.

Once your program is running, it keeps monitoring it against the initial set of predictions. If the execution at any time differs from what was ‘predicted’:

1. The prediction data structure is modified to take into account the new information.



2. Recording data is generated to select the right ‘prediction’ from the structure. This usually takes only 1 to 4 bits.

3. If the prediction matches accurately though then no data is generated at all!


See it in Action

For example, consider the code below:


Assume there are 2 threads that call the method process().

The first thread has an object of type Foo and calls, which matches the prediction made by the recorder exactly, so no data is generated at that point for that thread.

The second thread calls has an object of FooSub instead, and thus ends up calling

Now here is where things get interesting. For this thread only, the prediction structure is adjusted to account for this new method call. Then a single bit is stored to select the right method call from the prediction structure. The previous thread, on the other hand, which keeps keeps generating no data as its prediction is accurately matched.


As you can see that the new prediction mechanism helps in saving a ton of data that would otherwise have been generated and even when data is indeed generated, it’s only very minimal. Apart from the example given above, we have a whole bunch of predictions inside the Chronon 3 Recorder. We now even have a pluggable architecture where we can keep plugging in more of these predictions and constantly increasing the speed of the recorder, without needing to wait an entire year.

So far the current architecture has worked extremely well and almost all our previous users running into OutOfMemory issues are now able to record easily!

See how Nokia uses Chronon

Posted by Prashant Deva on November 5, 2012

We sat down with Harikishore Tadigotla of Nokia to see how Nokia uses a combination of Chronon Recording Server and Chronon Time Travelling Debugger to diagnose their SMS processing issues.

>> Read full Nokia Case Study

Some tidbits from the case study:


“Before Chronon, we used to take a huge amount of time in reproducing production bugs. Some bugs were simply impossible to reproduce since our local environments were never exact replicas of production environment.”


“Reproducing the bugs in our local environments was usually a very huge and cumbersome process as it involved a long and tedious process to redeploy server builds onto local environments before we got to verify them. Verifying local environments involves running simulations of SMS requests, which was not very accurate. Using Chronon we could switch to the payload of accurate SMS requests, which increased the accuracy of tests run in local environments.”


“The primary benefit is the ease with which bugs can be reproduced ‘offline’. Another major benefit we found with using Chronon is it offers an understanding the existing codebase in a large team. This was found to be particularly helpful in our team since we had a huge codebase and only few developers had familiarity to major portions of our codebase.”


To get the full details, read the entire Nokia Case Study.


Bugfix update 3.0.8

Posted by Prashant Deva on November 3, 2012

For those seeing NullPointerExceptions in the Debugger with the Chronon 3 udpate, this should fix that.

Also since due to ‘per thread time’, we run each thread truly independently, if you view the value of a variable that was created in a different thread, chronon will try to guess its value. >95% of the time the value will be correct, but even then the debugger marks such values as <<fuzzy>>.


The Amazing Chronon 3

Posted by Prashant Deva on November 1, 2012

Its been a long time coming, but Chronon 3 is finally here!

In the next few posts, we will dive deep into what took us so long and all the technical magic that makes Chronon 3 tick. For now lets see what Chronon 3 brings us:


  • Enormous performance upgrade
  • C3-memusage

The number one issues of Chronon users has been running into OutOfMemoryErrors and all of Chronon 3 is dedicated to eradicating that. The all new, rewritten from scratch Recorder is built to conserve memory. It uses off heap memory as much as possible and even then limits the amount of total data collected by the Recorder to be many times lower than that of previous versions. This graph gives you an idea of the improvement.

  • 5x faster unpacking

The Unpacker is much faster too! Apart from consuming much, much less resources, it also runs 5x faster!

  • Per Thread Time

With Chronon 3, we are introducing Per Thread Time, which gives each thread its own timeline, facilitating in must easier and faster debugging. Now the timeline view shows you the time and progess of the current thread instead of the whole system, giving you much more focused data. This is carried on in other views too, like the Stack view shows the current thread only instead of cluttering the view with all the threads in the system. The result of this is much more focused data and it also allows us to make the recorder more concurrent and faster.

  • On Demand Split

In case you missed it, a few months back we also introduced On Demand Split in the Recording Server, allowing you to split recordings anytime, without having to wait for a split interval.

  • Support for JBoss

Previously, Jboss 7 was having issues with Chronon due to OSGI classloader issues. With Chronon 3, this should be solved and you should be able to fully record your JBoss apps.

Future Updates

Now that we are done with this huge release, we will be doing much, much faster releases to keep bringing you new features. Due to time constraints for this release, we have decided not to include the ‘Recorded Console’ view. We think with Post Execution Logging you can achieve the same goal without cluttering your code with println() statements. However, if there is demand for it, we will bring the view back in the next update.

Renewed Trial

If you don’t own a Chronon subscription and your trial has expired, dont worry! You’ll get a fully renewed trial now when you download Chronon 3. Same goes for students. If your student license has expired, request your student license again and you will get a renewed one too.

Download Now

Stop waiting and go ahead and give the Chronon 3 Debugger and Recording Server  a try now!

« Previous 1 2 3 4 5 6 7 8 9 10 11 Next »