понедельник, 9 июня 2008 г.

GSoC Week 2

KEY ACCOMPLISHMENTS LAST WEEK

I set up and started using Acunote. Have to admit it is a really great project planning tool. Also I created two accounts for Mark and Colin so that they can track how the things are going any time they want and probably leave comments. I encourage everybody to try it out. Moreover the service is absolutely free and has no limitations for GSoCers. All you have to do is sign up here - "http://www.acunote.com/open-source/summer-of-code-howto".

I set up Bazaar version control system and hosted project on Launchpad. As soon as there would be the first stable version available everybody could get the source code. To do that you will have to issue one simple command - "bzr branch http://bazaar.launchpad.net/~m.ch/+junk/sigar-plugin". For those interested in Bazaar here is a mini-tutorial - "http://doc.bazaar-vcs.org/latest/en/mini-tutorial/index.html".

Set up Sandbox and installed MySQL 5.1 and 6.04. As plugins become available in MySQL only since version 5.1 I don't need some older versions. Regarding 6.06 I still wasn't able to build it (building errors below). Giuseppe Maxia produced a really great tool for developers and should be credited for that. If you are using Sandbox here are some hints. First, if you prefer connecting to MySQL instance using GUI tools (as I do), in the Connection Manager's Details section you should change socket name. Usually Sandbox creates socket named mysql_sandbox_version_number in /tmp/. Another thing, if your MySQL instance crashes (like mine does:) and you want to restart it, you would want to go to Sandbox ./data directory and delete *.pid file. Otherwise when you run ./start command Sandbox will keep telling you that MySQL server is already started.

Now it is clear that the building errors were caused by bad hardware. I installed VirtualBox and tried compiling and building MySQL server under Fedora/Debian/FreeBSD. All attempts came up with segmentation fault or BSOD (the VirtualBox was installed on Windows). The same time I found the comment about segfault errors when compiling on Athlon XP processors (the same that I've got) with optimization -O3 turned on. I tried playing with it - turning optimization off -O0 or setting it to -O2. There were no segfaults but some time after building process was started the OS just stopped responding. At last i tried building on my laptop and there were absolutely no errors.

Plugin loader implementation was not so simple as I imagined. Although I am able to compile and run plugin loader it works not the way I want it to do. My idea was to put some instructions in the plugin's init() functions, which would load another plugins. I tried two different approaches. 1. Using mysql_install_plugin() function, which is defined in sql_plugin.h and 2. using simple system("install plugin ...") function. Both of them fail when put into the init() function. But when we put them into plugin's fill_table() function they seem to work just fine.

KEY TASKS THAT STALLED LAST WEEK

The plugin loader implementation needs to be done the right way.

KEY CONCERNS

None this week.

TASKS IN THE UPCOMING WEEK

-- Get the stack trace of the server crash when triyng to install plugin loader with instructions to load another plugins put into init() function. Then I'll post the stack trace to internals mailing list and hope to get feedback on that.-- While waiting for the response on server crashes start implementation of simple plugins. I'm going to implement as much of them as I can this week. I'll be starting with the first one which is OS_INFO.-- I'm going to use autotools instead of Netbeans and Java framework. I'm not experienced with that so I will have to study some manuals on automake and autoconf.

Комментариев нет: