First, let's make some things clear. If you've received this message, then the following is probably true:

Samba is properly installed on your client PC.

Your Samba configuration settings are probably correct.

Your Windows host network settings are probably correct.

The Windows based file share is visible and reachable from your client PC.

You cannot connect to the shared printer you know is out there.

As far as I can tell, you only get this message if Samba 'sees' the share you want but cannot connect to it.

Edit: Point of clarification - In the examples below, you'll notice I use a domain name of 'lamasondufeu'. I always make use of a domain name on mixed networks in order to enforce Windows Workgroup naming consistency. By default, Samba will use the domain name of the computer it's running on as the 'Windows Workgroup' unless you explicitly provide one in smb.conf. Also by default, WinXP always uses 'workgroup' as it's value for 'Windows Workgroup'.

All computers which expect to talk to each other using Windows {cifs based} networking need to either be in the same Workgroup or you need to explicitly which workgroups they are allowed to talk to. Selecting a specific domain name for your network and using that as your Windows Workgroup name makes mixed networks much easier to adminster. Also, it's considered bad security practice to leave the Windows Workgroup name at it's default value so this is something you want to change anyway.

It's always good policy on multi-computer local networks to pick your own domain name and stick with it for that local network. End Edit

Before we run any diagnostics, we can see one immediate problem. Note the prompt for 'Password:'.

First tip: WinXP Home has no support for password based file shares. Password based file shares are optional for WinXP Professional. In the Windows world, all simple file shares assume there are no username/password pairs. Therefore, the above command was incorrect.

When trying to attach any simple Windows based file shares, you need to add '-o guest' to the mount command. Simple in this case means no password restricted file shares which means no user authentication of any kind. Repeat: All WinXP Home based file share are simple. Most home users of WinXP Professional will also be using simple file shares as will Win 7 users whose file shares are set in WinXP compatibility mode.

If you're on a network with more than a handful of computers, this listing can be quite long. Instead of running smbtree, you can run nmblookup. To run this command, you need an additional bit of information. That information is the IP address of the computer which hosts the file share you want to attach. As you can see from the above mount command, I have this information. There are one option you'll want to use:

Code:

-A, --lookup-by-ip Do a node status on <name> as an IP Address

This option reduces all the actions needed to perform the query to the barest minimum possible. This is an important point with implications I'll address further down.

Now that we've verified Samba is working and that the host is visible, we're ready to take the next diagnostic step. From both the smbtree and nmblookup commands, we know the Windows name of the host computer is SWEET. We therefore try our mount command using SWEET instead of 192.168.1.100:

Second Tip: When one computer can't find another computer by name, then we always punt. In this case, punting means to explicitly set up an entry in our local client's /etc/hosts file for the target share server:

Code:

# echo "192.168.1.100 SWEET sweet sweet.lamasondufeu" >> /etc/hosts

We do this so that we rely upon only our local client and the target share host to establish a connection. It's part of the bog standard diagnostic process to reduce number of possible failed components to the minimum needed.

Success!! We can now access file shares and printer shares on the target host computer.

This is not the ideal solution. Rather the 'name' of the target share host and its associated IP address is supposed to be already available on our network. Moreover, this is supposed to happen automatically.

Observations:

In this case SWEET (as can be seen from the nmblookup results) is the wins master browser on my local network. Yet no name/address association was available. I have had problems in the past with the wins master browser service in mixed environments. Crap happens. I should probably force configure the samba daemon on my internal network's server (SLIZARD) to be wins master browser.

In home networks which use an off the shelf router to connect to the internet, it is my personal observation that local name resolution may not happen. The default configuration of the OTS router is to support DNS service pass through for queries outside of the local lan.

As far as I've experienced, all distributions perform minimalist configuration installations. This means that these minimal configuration settings may assume working services that are not actually working such as a working wins or dns service.

Because of things like local caching (share name and IP being retained across reboots over time), it is possible for one client PC to have no problem with making a share connection while another either loses that ability or is never able to attach the share. Don't make the mistake of saying one PC is broken because another PC is still works.

In fact, said cached information can be lost due to simply performing an upgrade. It's not that the updated programs are broken. Instead, all the cached values are cleared during the upgrade. If your wins master browser is not working properly, then your wins resolution will never happen.

Depending on which machine on your network is the wins master browser and the version of Windows it's running, the strategy employed to refresh the wins master browser cache can range from stupid to really, really stupid. It is my understanding that after a wins master browser first initializes it's cache, it won't walk the local network again looking for new additions. Rather, it expects new additions to the local network to essentially add themselves.

Name resolution goes through a descending hierarchy of protocols. The last resort bottom name resolution protocol simply checks the /etc/hosts file. In theory however, explicitly specifying an IP address is supposed to always work too. I'm still surprised that my original mount command did not work. On the other hand, the added entry to the /etc/hosts file did work.

In my research for my issue, I encountered another known class of problems which can cause a mount error(115): Operation now in progress message. This is when the same nic (on the target share host) might be using more than one IP address. There are numerous valid circumstances for this including setting up virtual networks and the ability to add USB drives to routers for direct availability of said drives over a local network. In essence, the wins resolver associates the desired name with the wrong IP address.

The bottom line is that if you see a mount error(115): Operation now in progress message when trying to mount any cifs based network share, you most likely have a name resolution problem. Your equipment, software and physical connections are probably all fine. I re-iterate: Don't simply assume your equipment is broken or an upgrade was faulty or even that your configuration may be incorrect. Things may actually be working as designed.

In my example, lack of an internally available DNS combined with a stupid wins master browser are the root cause.

This episode has enhanced my motivation to build (re-purpose) a custom router again with a proper DNS as well as forcing it to be th wins master browser.

Further Readings

Threads which may be of interest in terms of the above discussion and hindsight perspective: