<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-19440085</id><updated>2011-04-22T02:59:42.078+05:30</updated><title type='text'>Veerapuram Varadhan's Worklog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vvaradan.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vvaradan.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Veerapuram Varadhan</name><uri>http://www.blogger.com/profile/06364244983745226482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-19440085.post-113698012387123506</id><published>2006-01-11T16:52:00.000+05:30</published><updated>2006-01-11T17:27:36.030+05:30</updated><title type='text'>Dtrace and glib</title><content type='html'>&lt;span style="font-family:courier new;"&gt;Memory leaks have always been difficult problems to deal it.  There are many tools available and most of them &lt;span style="font-style: italic;"&gt;preloads&lt;/span&gt; the probes and thus adds overhead on the execution of software.&lt;br /&gt;&lt;br /&gt;During recent encounters with memory leaks, I thought of trying DTrace, the dynamic tracing tool available from Solaris. It operates on the kernel level probes and thus doesn't add overhead by &lt;span style="font-style: italic;"&gt;preloading&lt;/span&gt; probes during execution. &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;It took me a while to get the setup ready for a noble cause. ;)&lt;br /&gt;&lt;br /&gt;And bingo!!, got a dtrace script and a supporting perl script that ease the job of printing the stack that leaks memory. Both the scripts are available &lt;a href="http://blogs.sun.com/roller/page/sanjeevb/20050614"&gt;here&lt;/a&gt;. The output of the script was quite satisfactory, however, glib uses memory-pools that doesn't actually free the memory, rather, mark it for re-use and similarly, its allocation routines return pointers from the pool, when available otherwise allocates fresh memory and maintain it in the pool.&lt;br /&gt;&lt;br /&gt;The DTrace script in the link actually uses the standard syscall probes, which in this case wouldn't be appropriate. So, I came up with the following script for glib:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;pre&gt;#!/usr/sbin/dtrace -s&lt;br /&gt;&lt;br /&gt;pid$target:libglib-2.0.so.0:g_malloc:entry&lt;br /&gt;{&lt;br /&gt;    self-&gt;trace = 1;&lt;br /&gt;    self-&gt;size = arg0;&lt;br /&gt;}&lt;br /&gt;pid$target:libglib-2.0.so.0:g_malloc:return&lt;br /&gt;/self-&gt;trace == 1/&lt;br /&gt;{&lt;br /&gt;    printf("Ptr=0x%p Size=%d", arg1, self-&gt;size);&lt;br /&gt;    ustack();&lt;br /&gt;    self-&gt;trace = 0;&lt;br /&gt;    self-&gt;size = 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;pid$target:libglib-2.0.so.0:g_realloc:entry&lt;br /&gt;{&lt;br /&gt;    self-&gt;trace = 1;&lt;br /&gt;    self-&gt;size = arg1;&lt;br /&gt;    self-&gt;oldptr = arg0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;pid$target:libglib-2.0.so.0:g_realloc:return&lt;br /&gt;/self-&gt;trace == 1/&lt;br /&gt;{&lt;br /&gt;    printf("Ptr=0x%p Oldptr=0x%p Size=%d", arg1, self-&gt;oldptr,&lt;br /&gt;self-&gt;size);&lt;br /&gt;    ustack();&lt;br /&gt;    self-&gt;trace = 0;&lt;br /&gt;    self-&gt;size = 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;pid$target:libglib-2.0.so.0:g_malloc0:entry&lt;br /&gt;/self-&gt;trace == 1/&lt;br /&gt;{&lt;br /&gt;    self-&gt;trace = 1;&lt;br /&gt;    self-&gt;size = arg1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;pid$target:libglib-2.0.so.0:g_malloc0:return&lt;br /&gt;/self-&gt;trace == 1/&lt;br /&gt;{&lt;br /&gt;    printf("Ptr=0x%p Size=%d", arg1, self-&gt;size);&lt;br /&gt;    ustack();&lt;br /&gt;    self-&gt;trace = 0;&lt;br /&gt;    self-&gt;size = 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;pid$target:libglib-2.0.so.0:g_free:entry&lt;br /&gt;{&lt;br /&gt;    printf("Ptr=0x%p ", arg0);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;The test program to verify the script:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;pre&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;glib.h&gt;&lt;br /&gt;&lt;br /&gt;int&lt;br /&gt;main ()&lt;br /&gt;{&lt;br /&gt; gchar* str = NULL;&lt;br /&gt; int i;&lt;br /&gt; &lt;br /&gt; for (i = 0; i &lt; 10; i++) {&lt;br /&gt;  str = g_strdup ("0123456789");&lt;br /&gt;  printf ("%s\n", str);&lt;br /&gt;  g_free (str);&lt;br /&gt; }&lt;br /&gt; return 0;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DTrace reported "Zero" memory leaks and I sort of convinced that the script works and can be run on bigger application like &lt;a href="http://www.gnome.org/projects/evolution"&gt;Evolution&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19440085-113698012387123506?l=vvaradan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vvaradan.blogspot.com/feeds/113698012387123506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19440085&amp;postID=113698012387123506' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113698012387123506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113698012387123506'/><link rel='alternate' type='text/html' href='http://vvaradan.blogspot.com/2006/01/dtrace-and-glib.html' title='Dtrace and glib'/><author><name>Veerapuram Varadhan</name><uri>http://www.blogger.com/profile/06364244983745226482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19440085.post-113629946173826336</id><published>2006-01-03T20:07:00.000+05:30</published><updated>2006-01-03T20:14:21.753+05:30</updated><title type='text'>Travelogue: NCAC - 2005, PSG Tech, Coimbatore.</title><content type='html'>&lt;span style="font-family: courier new;"&gt;My travelogue can be reached &lt;a href="http://varadhan.blogspot.com/2006/01/travelogue-ncac-2005-psg-tech.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It was a real fun to talk about &lt;span style="font-style: italic;"&gt;Open Source.&lt;/span&gt;  Just three weeks before this event, the department had inaugurated a lab of Open Source and some of their alumni members from &lt;a href="http://www.novell.com/linux"&gt;Novell&lt;/a&gt; presented talks on Open Source Technologies and distributed &lt;a href="http://www.opensuse.org"&gt;OpenSuSE&lt;/a&gt; DVDs to the lab and students.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19440085-113629946173826336?l=vvaradan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vvaradan.blogspot.com/feeds/113629946173826336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19440085&amp;postID=113629946173826336' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113629946173826336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113629946173826336'/><link rel='alternate' type='text/html' href='http://vvaradan.blogspot.com/2006/01/travelogue-ncac-2005-psg-tech.html' title='Travelogue: NCAC - 2005, PSG Tech, Coimbatore.'/><author><name>Veerapuram Varadhan</name><uri>http://www.blogger.com/profile/06364244983745226482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19440085.post-113406472379861338</id><published>2005-12-08T22:55:00.000+05:30</published><updated>2005-12-08T23:33:05.060+05:30</updated><title type='text'>Eureka!! Another Planet discovered.</title><content type='html'>&lt;span style="font-family:courier new;"&gt;Isn't the subject amazing?  Yep, I guess.  Today, while blogging and reading other planets, a &lt;span style="font-style: italic;"&gt;chotasa&lt;/span&gt; spark &lt;span style="font-style: italic;"&gt;jalaa&lt;/span&gt; in my mind..oO&lt;span style="font-size:130%;"&gt;O&lt;/span&gt;&lt;span style="font-size:180%;"&gt;O&lt;/span&gt;&lt;span style="font-size:180%;"&gt;(&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Why not we have a planet for evolution?&lt;/span&gt;&lt;span style="font-size:180%;"&gt;)&lt;/span&gt;......&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;jeee booom baaaa&lt;/span&gt;aaa....,&lt;br /&gt;&lt;br /&gt;Here it is, however, it is as of now running locally on my laptop, will soon move it to a publicly accessible server.&lt;br /&gt;&lt;br /&gt;WOW!! I should really appreciate and thank, &lt;a href="http://www.gnome.org/%7Ejdub/blog/"&gt;Jeff Waugh&lt;/a&gt; and &lt;a href="http://people.ubuntu.com/%7Escott/arch/personal/"&gt;Scott James Remnant&lt;/a&gt; for the &lt;a href="http://planetplanet.org/"&gt;Planet&lt;/a&gt; stuff.  The setup was so easy that it took hardly 5 mins to get my planetevolution up and running.  Great work guys.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19440085-113406472379861338?l=vvaradan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vvaradan.blogspot.com/feeds/113406472379861338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19440085&amp;postID=113406472379861338' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113406472379861338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113406472379861338'/><link rel='alternate' type='text/html' href='http://vvaradan.blogspot.com/2005/12/eureka-another-planet-discovered.html' title='Eureka!! Another Planet discovered.'/><author><name>Veerapuram Varadhan</name><uri>http://www.blogger.com/profile/06364244983745226482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19440085.post-113406271118422116</id><published>2005-12-08T22:46:00.000+05:30</published><updated>2005-12-08T23:35:25.386+05:30</updated><title type='text'>More enhancements than bugs, isn't it great?</title><content type='html'>&lt;span style="font-family:courier new;"&gt;From the list of around 30 pilot-conduit bugs, today I categorized them in to two &lt;span style="font-style: italic; font-weight: bold;"&gt;broad&lt;/span&gt; categories, &lt;span style="font-weight: bold;"&gt;fix-for-god-sake&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;fix-for-goodness-sake.&lt;/span&gt;  There was a third category, &lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;ask-nice-to-get-fixed&lt;/span&gt;&lt;/span&gt;, as a goodies for the hacker contributing to it.  Most of the bugs decorated the &lt;span style="font-style: italic;"&gt;fix-for-goodness-sake&lt;/span&gt; category, as many of &lt;span style="font-style: italic;"&gt;fix-for-god-sake&lt;/span&gt;s' are gone, phew. :-)&lt;br /&gt;&lt;br /&gt;Its really the right time to start supporting the new Palm OS databases which, pilot-link 0.12.x supports, in evolution-conduits. First one is &lt;span style="font-weight: bold;"&gt;Contacts&lt;/span&gt;, with so many requests, with one of them falling in to &lt;span style="font-style: italic;"&gt;ask-nice-to-get-fixed&lt;/span&gt; category. ;-)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19440085-113406271118422116?l=vvaradan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vvaradan.blogspot.com/feeds/113406271118422116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19440085&amp;postID=113406271118422116' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113406271118422116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113406271118422116'/><link rel='alternate' type='text/html' href='http://vvaradan.blogspot.com/2005/12/more-enhancements-than-bugs-isnt-it.html' title='More enhancements than bugs, isn&apos;t it great?'/><author><name>Veerapuram Varadhan</name><uri>http://www.blogger.com/profile/06364244983745226482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19440085.post-113389707412922510</id><published>2005-12-07T00:42:00.000+05:30</published><updated>2005-12-07T01:01:21.536+05:30</updated><title type='text'>A Beagle bite</title><content type='html'>&lt;span style="font-family:courier new;"&gt;It feels like &lt;span style="font-style: italic;"&gt;void&lt;/span&gt;, even after doing lot of coding in evolution &amp; co, till, I get a &lt;a href="http://beagle-project.org/"&gt;Beagle&lt;/a&gt; bite. May be that Beagle hacking is a real fun.  After the &lt;a href="http://vvaradan.blogspot.com/2005/11/beagle-memory-optimization-filters.html"&gt;memory-optimization&lt;/a&gt; work, I took two-bugs filed by our test-hero, &lt;a href="mailto:drichard@largo.com"&gt;David Richards&lt;/a&gt;, &lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=323276"&gt;323276&lt;/a&gt; and &lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=323312"&gt;323312&lt;/a&gt;. Though both the bugs are fixed, I haven't checked-in the fix for 323276 as it requires a little debugging-work to be done to get rid of a &lt;span style="font-style: italic;"&gt;double free&lt;/span&gt; error.&lt;br /&gt;&lt;br /&gt;323312 actually brought-up a corner case in the FilterPPT, actually, I would say one of the weirdness of Microsoft's formats. We were reading till EOF of the PPT stream and it was working fine except the document attached with the bug. Some stray bytes were left without reading causing the filter to enter into an infinite-loop.&lt;br /&gt;&lt;br /&gt;Guess, will have more beagle-bites this week.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19440085-113389707412922510?l=vvaradan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vvaradan.blogspot.com/feeds/113389707412922510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19440085&amp;postID=113389707412922510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113389707412922510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113389707412922510'/><link rel='alternate' type='text/html' href='http://vvaradan.blogspot.com/2005/12/beagle-bite.html' title='A Beagle bite'/><author><name>Veerapuram Varadhan</name><uri>http://www.blogger.com/profile/06364244983745226482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19440085.post-113389519939781827</id><published>2005-12-07T00:16:00.000+05:30</published><updated>2005-12-07T00:23:19.400+05:30</updated><title type='text'>3rd Top in closing most bugs for last week</title><content type='html'>&lt;span style="font-family: courier new;"&gt;I was playing around in bugzilla creating more saved-searches for quicker access to bugs and found my name listed 3rd for closing most number of bugs in last 7 days on Past week's bug activity link in &lt;a href="http://bugzilla.gnome.org"&gt;Gnome bugzilla&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As the link for past-week's-bug-activity keeps changing, &lt;a href="http://bugzilla.gnome.org/buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;amp;product=beagle&amp;product=Connector&amp;amp;product=Evolution&amp;product=Evolution-Data-Server&amp;amp;product=GAL&amp;product=gnome-pilot&amp;amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;amp;keywords_type=anywords&amp;keywords=&amp;amp;bug_status=RESOLVED&amp;resolution=FIXED&amp;amp;resolution=WONTFIX&amp;resolution=DUPLICATE&amp;amp;resolution=NOTABUG&amp;resolution=NOTGNOME&amp;amp;resolution=INCOMPLETE&amp;resolution=OBSOLETE&amp;amp;emailtype1=substring&amp;email1=&amp;amp;emailassigned_to2=1&amp;emailreporter2=1&amp;amp;emailcc2=1&amp;emaillongdesc2=1&amp;amp;emailtype2=substring&amp;email2=vvaradhan%40novell.com&amp;amp;bugidtype=include&amp;bug_id=&amp;amp;changedin=8&amp;chfieldfrom=&amp;amp;chfieldto=Now&amp;chfieldvalue=&amp;amp;cmdtype=doit&amp;namedcmd=Beagle-Bugs&amp;amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time&amp;amp;field0-0-0=noop&amp;type0-0-0=noop&amp;amp;value0-0-0="&gt;here&lt;/a&gt; is the list of bugs that I closed, includes evolution-conduits, beagle, connector, gnome-pilot and GAL bugs.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19440085-113389519939781827?l=vvaradan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vvaradan.blogspot.com/feeds/113389519939781827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19440085&amp;postID=113389519939781827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113389519939781827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113389519939781827'/><link rel='alternate' type='text/html' href='http://vvaradan.blogspot.com/2005/12/3rd-top-in-closing-most-bugs-for-last.html' title='3rd Top in closing most bugs for last week'/><author><name>Veerapuram Varadhan</name><uri>http://www.blogger.com/profile/06364244983745226482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19440085.post-113389423496127543</id><published>2005-12-07T00:02:00.000+05:30</published><updated>2005-12-07T00:07:14.963+05:30</updated><title type='text'>Bug triaging - Part 1</title><content type='html'>&lt;span style="font-family: courier new;"&gt;Last week I triaged around 36 bugs in GAL, which is now a retired-component of Evolution.  Have to categorize that list of bugs in to fix-for-gods-sake, fix-for-goodness-sake and wont-fix.&lt;br /&gt;&lt;br /&gt;Today, triaged around 80 bugs in all including Evolution-conduits, gpilot and Beagle.&lt;br /&gt;&lt;br /&gt;Marked around 20 bugs as FIXED/INCOMPLETE/NOTGNOME and 30 bugs to be fixed.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19440085-113389423496127543?l=vvaradan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vvaradan.blogspot.com/feeds/113389423496127543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19440085&amp;postID=113389423496127543' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113389423496127543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113389423496127543'/><link rel='alternate' type='text/html' href='http://vvaradan.blogspot.com/2005/12/bug-triaging-part-1.html' title='Bug triaging - Part 1'/><author><name>Veerapuram Varadhan</name><uri>http://www.blogger.com/profile/06364244983745226482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19440085.post-113389388635342669</id><published>2005-12-06T23:50:00.000+05:30</published><updated>2005-12-07T00:01:26.380+05:30</updated><title type='text'>Recurrence - Mind blowing stuff of iCal - 2</title><content type='html'>&lt;span style="font-family: courier new;"&gt;Today I committed my recurrence work in evolution-exchange along with other conduit patches.  Now, evolution-conduits can sync against exchange and groupwise (needs testing) accounts.&lt;br /&gt;&lt;br /&gt;Following links will take you to those committed changes:&lt;br /&gt;1) &lt;a href="http://cvs.gnome.org/bonsai/cvsquery.cgi?branch=&amp;dir=evolution&amp;amp;who=vvaradan&amp;date=explicit&amp;amp;mindate=2005-12-06%2003:38&amp;maxdate=2005-12-06%2003:40"&gt;Calendar conduit&lt;/a&gt;&lt;br /&gt;2) &lt;a href="http://cvs.gnome.org/bonsai/cvsquery.cgi?branch=&amp;amp;dir=evolution&amp;who=vvaradan&amp;amp;date=explicit&amp;mindate=2005-12-06%2003:40&amp;amp;maxdate=2005-12-06%2003:42"&gt;Todo conduit&lt;/a&gt;&lt;br /&gt;3) &lt;a href="http://cvs.gnome.org/bonsai/cvsquery.cgi?branch=&amp;dir=evolution&amp;amp;who=vvaradan&amp;date=explicit&amp;amp;mindate=2005-12-06%2003:42&amp;maxdate=2005-12-06%2003:44"&gt;Addressbook conduit&lt;br /&gt;&lt;/a&gt;4) &lt;a href="http://cvs.gnome.org/bonsai/cvsquery.cgi?branch=&amp;amp;dir=evolution-exchange&amp;who=vvaradan&amp;amp;date=explicit&amp;mindate=2005-12-06%2003:23&amp;amp;maxdate=2005-12-06%2003:25"&gt;Recurrence fix in evolution-exchange&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now, that &lt;span style="font-style: italic;"&gt;Eureka &lt;/span&gt;thing.  Yes, the bug was in exchange-calendar code that reads events from the server.  According to MSDN, events have some specific property that has values from 0 - 4, which represents events with master object, without master object, detached instances etc.  Evolution-exchange was always querying for events with codes 0 and 1, which made the message not to appear in evolution as it didn't even fetch. &lt;a href="mailto:pchenthill@novell.com"&gt;Chen&lt;/a&gt; fixed this thing today.&lt;/span&gt;&lt;a href="mailto:pchenthill@novell.com"&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19440085-113389388635342669?l=vvaradan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vvaradan.blogspot.com/feeds/113389388635342669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19440085&amp;postID=113389388635342669' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113389388635342669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113389388635342669'/><link rel='alternate' type='text/html' href='http://vvaradan.blogspot.com/2005/12/recurrence-mind-blowing-stuff-of-ical_06.html' title='Recurrence - Mind blowing stuff of iCal - 2'/><author><name>Veerapuram Varadhan</name><uri>http://www.blogger.com/profile/06364244983745226482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19440085.post-113345506075454065</id><published>2005-12-01T21:58:00.000+05:30</published><updated>2005-12-01T22:08:37.303+05:30</updated><title type='text'>Recurrence - Mind blowing stuff of iCal</title><content type='html'>&lt;span style="font-family: courier new;"&gt;The supplemental &lt;/span&gt;&lt;a style="font-family: courier new;" href="http://mail.gnome.org/archives/evolution-patches/2005-November/msg00112.html"&gt;patch&lt;/a&gt;&lt;span style="font-family: courier new;"&gt; had a new &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic; font-family: courier new;"&gt;FIXME &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;to support syncing of instances of a calendar event. In simpleton, recurrences. Recurrence in Evolution has always been a nightmare and especially w.r.t individual backends its more than a nightmare. &lt;/span&gt;&lt;a style="font-family: courier new;" href="mailto:pchenthill@novell.com"&gt;Chen&lt;/a&gt;&lt;span style="font-family: courier new;"&gt; had made quite good contributions for recurrence in evolution-data-server and some of the other backends. My synchronization stuff cannot be close to complete, if I don't have support for syncing the instances of a recurrence. Today, with a determined mind, was looking at the other backends for similar implementation and finally, got the code in place.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Testing is what makes us happy to see our code working. Well, it was working except for a specific scenario in which we have only (a) instance(s) without any corresponding master object. Hugh... I was tired finding out the roots of the cause and finally got to a point where I could say, "Eureka!! I found the reason". Well, thatz it for today and keep watching to know more about that "Eureka" stuff. ;-)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19440085-113345506075454065?l=vvaradan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vvaradan.blogspot.com/feeds/113345506075454065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19440085&amp;postID=113345506075454065' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113345506075454065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113345506075454065'/><link rel='alternate' type='text/html' href='http://vvaradan.blogspot.com/2005/12/recurrence-mind-blowing-stuff-of-ical.html' title='Recurrence - Mind blowing stuff of iCal'/><author><name>Veerapuram Varadhan</name><uri>http://www.blogger.com/profile/06364244983745226482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19440085.post-113336186417883162</id><published>2005-11-30T20:06:00.000+05:30</published><updated>2005-12-01T21:58:08.213+05:30</updated><title type='text'>Exchange synchronization is back.</title><content type='html'>&lt;span style="font-family:courier new;"&gt;Just cooked up a patch for &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;todo-conduits&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; to sync with &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;exchange-tasks&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;.  All the three, Calendar, Tasks and Addressbook (contact) conduits are now &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;authentication&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; aware that they can authenticate without user interaction.  However, user should have saved their account passwords through &lt;/span&gt;&lt;a style="font-family: courier new;" href="http://www.gnome.org/projects/evolution"&gt;Evolution&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Patches are as follows:&lt;br /&gt;&lt;a href="http://mail.gnome.org/archives/evolution-patches/2005-November/msg00111.html"&gt;Calendar and Contacts&lt;br /&gt;&lt;/a&gt;&lt;/span&gt;&lt;a href="http://mail.gnome.org/archives/evolution-patches/2005-November/msg00175.html"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;&lt;a href="http://mail.gnome.org/archives/evolution-patches/2005-November/msg00175.html"&gt;Tasks&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;a href="http://mail.gnome.org/archives/evolution-patches/2005-November/msg00112.html"&gt;Supplemental fix for exchange-calendar sync to work&lt;/a&gt;. ;-)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19440085-113336186417883162?l=vvaradan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vvaradan.blogspot.com/feeds/113336186417883162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19440085&amp;postID=113336186417883162' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113336186417883162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113336186417883162'/><link rel='alternate' type='text/html' href='http://vvaradan.blogspot.com/2005/11/exchange-synchronization-is-back.html' title='Exchange synchronization is back.'/><author><name>Veerapuram Varadhan</name><uri>http://www.blogger.com/profile/06364244983745226482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19440085.post-113332217949832557</id><published>2005-11-30T09:11:00.000+05:30</published><updated>2005-11-30T14:09:49.196+05:30</updated><title type='text'>Beagle memory optimization - Filters</title><content type='html'>&lt;span style="font-family: courier new;font-family:courier new;font-size:100%;"  &gt;On 26th November 2005, myself and &lt;a href="mailto:dbera.web@gmail.com"&gt;Debajyothi Bera&lt;/a&gt; started discussing about memory consumption of &lt;a href="http://beagle-project.org/"&gt;Beagle&lt;/a&gt;, especially its filters. DBera gave a link to the &lt;a href="http://blog.trowbridge.org/index.php?p=49"&gt;heap-buddy &lt;/a&gt;output of Source filter, which showed around 2.9M of allocations.&lt;br /&gt;&lt;br /&gt;I immediately pulled heap-buddy from the trunk and installed it and ran beagle-extract-content on a 'C#' source-code file of size approx. 130K. The report showed around 2.6M of allocations for extracting contents from that 'C#' file and the size of extracted content was just around 68K. Here is the heap-buddy output before fix:&lt;br /&gt;&lt;br /&gt;bhargavi@vvaradhan-lap:~/cvs/beagle/beagle-before-fix/beagled&gt; heap-buddy outfile&lt;br /&gt;          SUMMARY&lt;br /&gt;&lt;br /&gt;        Filename: outfile&lt;br /&gt; Allocated Bytes: 2.6M&lt;br /&gt;Allocated Objects: 68736&lt;br /&gt;             GCs: 10&lt;br /&gt;         Resizes: 8&lt;br /&gt; Final heap size: 1.3M&lt;br /&gt;&lt;br /&gt;  Distinct Types: 170&lt;br /&gt;      Backtraces: 2572&lt;br /&gt;&lt;br /&gt;and individual "type-based-allocations" as follows...&lt;br /&gt;&lt;br /&gt;bhargavi@vvaradhan-lap:~/cvs/beagle/beagle-before-fix/beagled&gt; heap-buddy outfile types&lt;br /&gt;&lt;br /&gt;                 Type                    #   Total  AvSz  AvAge BT#&lt;br /&gt;                                string 44744  2.0M   47.4   0.2 636&lt;br /&gt;                              string[]  4460  106k   24.4   0.1  59&lt;br /&gt;                                char[]  3922   98k   25.7   0.3  59&lt;br /&gt;                                  char  7141   69k   10.0   0.0   8&lt;br /&gt;             System.Text.StringBuilder  1940   45k   24.0   0.0  71&lt;br /&gt;System.Collections...t/SimpleEnumerator  1339   31k   24.0   0.0  17&lt;br /&gt;                                byte[]    21   29k 1422.7   5.6  21&lt;br /&gt;   System.Collections.Hashtable/Slot[]   106   26k  251.2   1.8  71&lt;br /&gt;                              object[]   321   23k   76.2   0.7 182&lt;br /&gt;             Beagle.Filters.FilterHtml   695   21k   32.0   3.9   1&lt;br /&gt;                       System.MonoType   650   16k   25.7   8.1 166&lt;br /&gt;          System.Reflection.MonoMethod   293   11k   41.0   7.8  20&lt;br /&gt;          System.Xml.NameTable/Entry[]    20   10k  528.0   0.1  13&lt;br /&gt;            System.Xml.NameTable/Entry   226  5.3k   24.0   0.4  94&lt;br /&gt;                    System.IO.FileInfo    65  5.1k   80.0   1.1   2&lt;br /&gt;          System.Collections.ArrayList   255  5.0k   20.0   0.8 154&lt;br /&gt;System.Xml.XmlName...eManager/NsScope[]    15  4.9k  336.0   0.1   8&lt;br /&gt;      System.Reflection.PropertyInfo[]   116  4.6k   40.9   0.0  10&lt;br /&gt;          System.Collections.Hashtable    93  4.4k   48.0   2.1  62&lt;br /&gt;        System.Reflection.MethodInfo[]    20  3.9k  199.6   0.0   3&lt;br /&gt;                    System.Attribute[]   197  3.6k   18.6   0.4  66&lt;br /&gt;System.Xml.Serialization.XmlAttributes    55  3.2k   60.0   0.3  25&lt;br /&gt;                     System.MonoType[]   201  3.1k   16.0   6.0   8&lt;br /&gt;         System.Reflection.MonoCMethod   125  2.6k   21.5   5.3   6&lt;br /&gt;     System.Xml.Serialization.TypeData    58  2.5k   44.0   8.9  57&lt;br /&gt;&lt;br /&gt;(skipped 145 types)&lt;br /&gt;&lt;br /&gt;... check the top 4 types.. string, string[], char, char[] and StringBuilder. These are the types that contributed most of allocations.&lt;br /&gt;&lt;br /&gt;A little closer look at the Filter.cs revealed a potential-unnecessary-allocation of string being done.  The fix &lt;a href="http://cvs.gnome.org/bonsai/cvsview2.cgi?diff_mode=context&amp;whitespace_mode=show&amp;amp;root=/cvs/gnome&amp;subdir=beagle/beagled&amp;amp;command=DIFF_FRAMESET&amp;root=/cvs/gnome&amp;amp;file=Filter.cs&amp;rev1=1.36&amp;amp;rev2=1.37"&gt;here&lt;/a&gt;  fixed it.  The fix saved around 600K of allocations for filtering the mentioned "C#" file.&lt;br /&gt;&lt;br /&gt;Heap-buddy report after the fix:&lt;br /&gt;&lt;br /&gt;bhargavi@vvaradhan-lap:~/cvs/beagle/beagle/beagled&gt; heap-buddy outfile&lt;br /&gt;&lt;br /&gt;          SUMMARY&lt;br /&gt;&lt;br /&gt;        Filename: outfile&lt;br /&gt; Allocated Bytes: 2.0M&lt;br /&gt;Allocated Objects: 47082&lt;br /&gt;             GCs: 8&lt;br /&gt;         Resizes: 8&lt;br /&gt; Final heap size: 1.3M&lt;br /&gt;&lt;br /&gt;  Distinct Types: 170&lt;br /&gt;      Backtraces: 2581&lt;br /&gt;&lt;br /&gt;.. and "individual-type-based-allocations"..&lt;br /&gt;bhargavi@vvaradhan-lap:~/cvs/beagle/beagle/beagled&gt; heap-buddy outfile types&lt;br /&gt;&lt;br /&gt;                 Type                    #   Total  AvSz  AvAge BT#&lt;br /&gt;                                string 32361  1.6M   50.8   0.2 639&lt;br /&gt;                                  char  7141   69k   10.0   0.0   8&lt;br /&gt;                                char[]   218   33k  157.3   4.4  54&lt;br /&gt;System.Collections...t/SimpleEnumerator  1334   31k   24.0   0.0  17&lt;br /&gt;                                byte[]    21   29k 1422.7   4.4  21&lt;br /&gt;                              string[]   685   27k   40.9   0.6  55&lt;br /&gt;   System.Collections.Hashtable/Slot[]   107   26k  250.3   1.4  72&lt;br /&gt;                              object[]   319   23k   75.7   0.6 182&lt;br /&gt;             Beagle.Filters.FilterHtml   734   22k   31.6   3.2   1&lt;br /&gt;                       System.MonoType   652   16k   25.6   6.4 166&lt;br /&gt;          System.Reflection.MonoMethod   293   11k   41.0   6.1  20&lt;br /&gt;          System.Xml.NameTable/Entry[]    20   10k  528.0   0.1  13&lt;br /&gt;            System.Xml.NameTable/Entry   226  5.3k   24.0   0.4  94&lt;br /&gt;          System.Collections.ArrayList   253  4.9k   20.0   0.6 152&lt;br /&gt;System.Xml.XmlName...eManager/NsScope[]    15  4.9k  336.0   0.1   8&lt;br /&gt;      System.Reflection.PropertyInfo[]   116  4.6k   40.9   0.0  10&lt;br /&gt;                    System.IO.FileInfo    57  4.5k   80.0   0.1   2&lt;br /&gt;          System.Collections.Hashtable    94  4.4k   48.0   1.6  63&lt;br /&gt;        System.Reflection.MethodInfo[]    20  3.9k  199.6   0.0   3&lt;br /&gt;                    System.Attribute[]   197  3.6k   18.6   0.3  66&lt;br /&gt;System.Xml.Serialization.XmlAttributes    55  3.2k   60.0   0.3  25&lt;br /&gt;                     System.MonoType[]   202  3.2k   16.0   4.5   8&lt;br /&gt;             System.Text.StringBuilder   127  3.0k   24.0   0.2  85&lt;br /&gt;         System.Reflection.MonoCMethod   122  2.6k   21.5   4.3   6&lt;br /&gt;     System.Xml.Serialization.TypeData    58  2.5k   44.0   6.9  57&lt;br /&gt;&lt;br /&gt;(skipped 145 types)&lt;br /&gt;&lt;br /&gt;When you compare the above two reports, the main contributors for memory allocations were reduced after fix.&lt;br /&gt;&lt;br /&gt;The current fix will give some good numbers when run on bigger documents. (Will post them later.)&lt;br /&gt;&lt;br /&gt;As a side-effect of this fix, the filters run little faster than they used to be. ;-)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19440085-113332217949832557?l=vvaradan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vvaradan.blogspot.com/feeds/113332217949832557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19440085&amp;postID=113332217949832557' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113332217949832557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19440085/posts/default/113332217949832557'/><link rel='alternate' type='text/html' href='http://vvaradan.blogspot.com/2005/11/beagle-memory-optimization-filters.html' title='Beagle memory optimization - Filters'/><author><name>Veerapuram Varadhan</name><uri>http://www.blogger.com/profile/06364244983745226482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
