Sunday, February 24, 2013

undefined symbol: tdb_transaction_start_nonblock

When enabling Samba on an openSUSE instance, I received the above error when I tried to use:

net join

to join a domain.

Apparently there are some dependency issues.  To resolve this problem I used yast to find libtdb and install it and the error went away.

However, when I tried to start Samba on startup it failed.  I discovered this second error by looking in /var/log/samba/log.smbd:

/var/sbin/smbd: symbol lookup error: /usr/sbin/smbd: undefined symbol: wbcSidsToUnixIds

I found that this is from libwbclient0, so I used yast to install it (version 3.6.3-115.1) and this second error went away.   You may have to first stop the nmb daemon using:

rcnmb stop


After rebooting I checked the status of both nmb and smb using the following commands:

rcsmb status
and
rcnmb status

and now both daemons are running.

Wednesday, December 5, 2012

IBM Connect 2013 is coming soon!

IBM Connect 2013 is just around the corner! The conference will be held in Orlando, FL from January 27-31, 2013. You can register to attend on IBM's site.

We will be demonstrating our products again this year (our sixth year) in the exhibition hall. This year our pedestal is very close to the escalators (C38).

Please stop by to see our desktop search products for:
  • IBM Notes (mail, archives, attachments, databases, and design elements)
  • IBM Connections
In addition we will be demonstrating our archiving solutions for IBM Domino databases/applications including IBM Quickr.

If you can't attend IBM Connect 2013, you can still see our search products in action here. All our products are available on http://www.notesconnectors.com. Please contact us if you would like to have a personalized demonstration of any of our products via a web session.

Thursday, October 11, 2012

Viewing the .NET Finalizer Queue

In .NET, memory is managed via a garbage collector.  The collector works by processing the "Finalizer Queue".  Sometimes the queue can back up (the overall system is so busy that it can't release the items fast enough) and so you may need to come up with a new resource deallocation strategy.

In order to find the problematic objects, its useful to look at the queue at certain points when the system is under load to see what can be reclaimed sooner by implementing the IDisposable interface and freeing those objects in your code (thereby avoiding having them processed by the queue).

There is a third party tool to do let you view this information but it would make sense that there is an alternative way using Microsoft Visual Studio and it is described in this article by Tess Fernandez: .Net finalizer memory leak debugging with sos dll in visual studio.

There were a couple of noteworthy gotchas:

  1. When you connect the debugger to the running executable, you need to ensure that Native debugging is turned on
  2. The sos.dll extension that you load is done via the "immediate" window which is different from the "command" window.  To get an immediate window to open you can type immed into the command window.  From the immediate window you use the .load command highlighted in the article.
The best part about this tool is there doesn't appear to be anything you need to install.  The sos.dll is always there with .Net 2.0 or later.

Saturday, November 5, 2011

Debugging Enterprise Vault 10 Indexing

In debugging some indexing related issues with Symantec Enterprise Vault I found this link http://www.symantec.com/docs/TECH160420 which provides some useful information about debugging indexing. 

I have found the EV Dtrace facility to be very useful for debugging in the past and for indexing, one of the tasks which generate output is EVIndexVolumesProcessor so you should set it to generate verbose output while using Dtrace.

The dtrace was instrumental in leading me to this post: http://www.symantec.com/connect/forums/problems-indexing-after-upgrading#comment-5964601  The indexer was having trouble communicating with the StorageCrawler even though they were on the same machine.  Disabling the firewall resolved the issue so there must be a port that needs to be opened.  More details as they become available.

Friday, April 29, 2011

About Me

I run a software development company: JPG Consulting, Inc.  We develop software on a contract basis as well as sell our own products on http://www.notesconnectors.com/.

This blog is going to be devoted to API issues we uncover as we do our development.  Often we find the documentation and samples lacking and wind up doing a lot of digging on the web or code experimentation to find the solution.

I will try to label the relevant API on each post to make searching easier.