Sunday, June 28, 2009

PeerBlock r52 Interim Release

Here is the latest "test version" of PeerBlock - based on the code at SVN rev 52 at Google Code. Please give it a shot on your respective systems, and let me know one way or the other how it works for you.

What's Changed

Here's what's different since the last official public "ghetto release" of r33.

First off, and most importantly I think, the pg2loader.exe tool should no longer be necessary to start up PeerBlock. We should no longer be seeing the "hang while updating/adding-to lists" problem either.

Next up is the mini-dump functionality. In theory, any unhandled exceptions should be triggering creation of a peerblock.dmp file. In practice, however, I have been having some issues getting that to work reliably . . . particularly with the "app-crash on exit" problem I've been seeing every so often when exiting the "Release (Vista) x64" version of the program. If you end up generating any problems that result in the creation of a peerblock.dmp file, please send it to me along with your peerblock.log. Hopefully I'll have things setup to be able to analyze them this time.

PeerBlock now has new filenames, peerblock.exe and pbfilter.sys. This means that it can be installed in the same directory as your currently-installed PG2 install, without overwriting files. It also is now using peerblock.conf as its configuration file; if this file doesn't exist, it will first read-in pb2.conf and use that as its initial settings, and will then save to peerblock.conf (i.e. NOT overwriting pb2.conf) when you exit it.

Other than that, the program version now shows up in both the main UI window as well as in the "About" screen (right-click on icon, select "About"). Also the OS version you're running should be logged into the peerblock.log file.

Known Problems

These are some problems I've currently seen with the tool on my machine.
  1. Crash When Exiting - After right-clicking on the taskbar icon and selecting "Exit", sometimes the program crashes. Almost never happens while I'm running in the debugger, and the minidump-creation code doesn't seem to be kicking-in.
  2. Crash Before Updating - Very rarely, I've seen the program crash while it's preparing to setup network connections to check for updates. The one time I saw this in the debugger, it appeared to be while it was setting up the preconnect callback (which are PG2's modifications to the original libcurl library), so this is likely either a problem with those original routines, my port of them to the new libcurl codebase, or some combination thereof. Have not seen this happen since I got the minidump stuff built-in.
  3. Long Startup - It seems to take awhile after you first run the tool before it starts checking for updates and the taskbar icon appears. I only started seeing this recently, so it may be a side-effect of the minidump-creation stuff I put in there.
  4. Delayed UI - Even after the taskbar icon appears, if you double-click on it (or even right-click) it takes awhile for the UI to respond. The right-click menu takes awhile to appear, the main UI window takes awhile to show up and then after it shows up takes a second or so to become responsive as it scrolls through all the recent activity. This may be due to the fact that I've recently been stopping/restarting it while heavy network traffic (utorrent-based bittorrent) is underway so it's getting swamped - which may have been what led to the original PG2 warnings of "make sure utorrent is NOT running before you start PG2".
...and I think that's just about it. The last two of these issues have just recently started showing up, so may be due to recent updates I've made. The first two have actually been around for awhile now, but few other people have reported seeing them - so there may be some particular machine-configuration that brings them out.

If you can confirm/deny seeing any of these problems on your setup, please make sure to let me know!!

Things to Test

Here are some tests we should all try to run through on our respective machines:
  1. Side-by-Side Installation - Unzip the peerblock.exe and pbfilter.sys files into the same directory in which you currently have PG2 installed. Make sure that no peerblock.conf file is currently in that dir; delete the pre-existing peerblock.conf if it's there. Try running PeerBlock and make sure that its settings look the same as PG2's. Exit the program and make sure that a peerblock.conf is created. Start PG2 again and update some of the settings; then exit and restart it to make sure those new settings are successfully loaded.
  2. Base Install - Try unzipping peerblock.exe and pbfilter.sys into their own directory somewhere and running it. It should run through the "Startup Wizard", and afterwards should run normally (peerblock.conf and all). Verify this, and that there is no pg2.conf file in that directory afterwards.
  3. Version Display - Make sure that the title of the main UI window says "PeerBlock r52". Right-click on the taskbar icon and select "About"; verify that it says "PeerBlock r52" in there as well.
  4. OS Rev Logging - Open up peerblock.log and look up near the beginning of the file, verify that the "Running on OS:" line correctly states the version of Windows you're running.
  5. Update at Startup - Set PeerBlock's configuration to Update At Startup. Verify that the program starts, doesn't crash, and does in fact appear to be working correctly.
  6. Exit - Try exitting/restarting the program many times, to see if you can hit Problem #1 above.
  7. Update Lists - Check the update functionality, make sure no crashes occur. (i.e. test for Problem #2 mentioned above.)
  8. Startup Delays - Check for Problems #3 and #4 above.

Get it Here

Make sure you pick the right file for your OS rev!

Thanks for Contributing!

Thanks guys, I'm very appreciative that y'all are willing to help out with this pre-release testing. Hopefully we'll be able to smooth things out enough that we can agree it's ready for another public release sometime soon. Oh, and I'd like to extend thanks to you guys in the Official PeerBlock Credits (e.g., displayed in the About window) for your help. Let me know how you'd like to be credited (or if you'd rather not be, for some reason); full name like everything else in there now, some alias, both (e.g. Mark "MarkSide" Bulas), or what.

Again, if you encounter any problems whatsoever, please either drop me an email or comment to this blog-post describing the error, what OS rev you're running, etc. And make sure to save aside the peerblock.log and peerblock.dmp files for me from any problem-runs, before you restart PeerBlock.

Happy Testing!

        --- Mark ---


  1. This is the sweetest peerblock known to man.
    Thank you for all your efforts, Mark!!

  2. great work on marks part we all need to say thanks

  3. Thanks to all the contributors who made PeerBlock a reality.

  4. can you do this?

    Anyways great release