OS2 World Community Forum
OS/2, eCS & ArcaOS - Technical => Networking => Topic started by: Paul Smedley on December 17, 2023, 09:31:08 am
-
Hi All,
I mentioned at Warpstock that I was planning on updating the Samba client for AOS/OS/2. I got around to making Samba 4.18.9 compile.
An updated Netdrive plugin is available from https://smedley.id.au/tmp/ndpsmb-3.18.1-samba418-20231217.zip
To test - backup your old ndpsmb.dll first - then simply replace it with the on in the zip, and ensure smbcl418.dll can be found in the libpath.
Probably also needs an updated gnutls30.dll from https://smedley.id.au/tmp/gnutls30.zip
I still need to go through https://github.com/psmedley/ndpsmb/blob/samba-4.18.x/src/smbwrp.c and synchronise some of the code against libsmb.
Seems to work ok against a Samba Server running on Ubuntu Server 22.04. YMMV.
Cheers,
Paul
Latest files (at 4th Feb, 2024):
Server https://smedley.id.au/tmp/samba-4.19.4-os2-20240203.zip
Latest Netdrive Plugin: https://smedley.id.au/tmp/ndpsmb-20240127.zip
Latest smbcl419.dll: https://smedley.id.au/tmp/smbcl419-4.19.4-20240202.zip
Latest gnutls30.dll build: https://smedley.id.au//tmp/gnutls30.zip
-
Hi Paul,
Deployed in my config of: remote Samba shares are on the NAS box and Win7Pro machine.
NDCTL appears to successfully start the manager, but no shares actually show.
I find the following in the ndctl.log:
11:39:04.250:
NetDrive for OS/2(R) Control Program version 3.1.6.941 Nov 17 2019
11:39:04.250: 2023-12-17
11:39:04.250: NDFSDIR environment variable found: G:\util\NDFS
11:39:04.250: NetDrive working directory is G:\util\NDFS
11:39:04.250: File system driver name is NDFS32.
11:39:04.260: NetDrive configuration file 'G:\util\NDFS\ndctl.cfg' has been processed.
11:39:04.260: Registered Version
11:39:04.260: Registered to Dariusz Piatkowski
11:39:04.260: [ local] internal plugin has been initialized.
11:39:04.260: [ ndpftp] (level 2) plugin has been loaded.
11:39:04.260: [ ndpiso] (level 2) plugin has been loaded.
11:39:04.270: [ ndpdav] (level 2) plugin has been loaded.
11:39:04.280: NDF0033: The system can't load the module: JANSSON4
11:39:04.280: NDF0029: [ ndpsmb] plugin has not been loaded.
11:39:04.280: NDF0007: The system error is SYS0002
11:39:04.290: [ ndpnfs3] (level 3) plugin has been loaded.
11:39:04.290: Initialization completed. The control program is running.
11:39:04.420: NDF0045: Resource SMBFS (W) specified in file volumes.cfg, line 4 was not mounted
11:39:04.420: NDF0007: The system error is SYS0050
11:39:04.420: NDF0045: Resource SMBFS (W) specified in file volumes.cfg, line 6 was not mounted
11:39:04.420: NDF0007: The system error is SYS0050
11:39:04.420: NDF0045: Resource SMBFS (W) specified in file volumes.cfg, line 7 was not mounted
11:39:04.420: NDF0007: The system error is SYS0050
11:39:04.420: NDF0045: Resource SMBFS (W) specified in file volumes.cfg, line 10 was not mounted
11:39:04.420: NDF0007: The system error is SYS0050
11:40:48.410: NetDrive Control Program has been interrupted by File System Driver.
...but seeing this in the above LOG:
NDF0033: The system can't load the module: JANSSON4
makes me think another module besides smbcl418 & gnutls30 is needed?
I didn't get any hits with "yum provides */jansson4"...
Thanks as always!
-
Paul,
Thanks... seems to work well with my OS/2 SAMBA server (4.11) in limited testing. Any chance for a new server too?
@Dariusz - FYI, there is a Jansson package at netlabs-exp. It seems to work OK here.
Regards,
-
Hey Dave!
@Dariusz - FYI, there is a Jansson package at netlabs-exp. It seems to work OK here.
Right on, thank you. My yum search missed it b/c I left out the ".dll".
So feedback on what I'm seeing, which puts me in a really weird "no-go" situation: NDCTL comes up fine, it maps the shares successfully, but immediately afterwards as I attempted to actually access the shares WPS completely locked-up.
Hmm...OK, I initially thought: maybe some kind of a conflict between the new ndpsmb.dll and the old one (although I shut-down the service in NDCTL before tossing the new DLL into place, and it would appear it was fine at that time). So off I went to re-boot my machine...
...and upon coming back was greeted by a never seen before WPS/Desktop msg: "...system does not have enough memory to show/load Desktop..."!!! ugh???? Yeah, the Desktop never populated, the WarpCenter came up, all my utils fired up, but not the Desktop, just the BLUE screen.
OK, so mind you I am running a crazy large JFS cache, that being 1.2G, but it's awfully nice for my purposes, and I regularly have this machine up for 20-24 days (longest ever was 45 actually) and what usually brings it down is the low shared memory.
But...testing it is, so off I went downsizing the cache, a few attempts later having gotten to 0.5G and still showing the very same Desktop error message I had decided to STOP.
Sooo...whatever is causing the issue is a brick-wall for me. Happy to troubleshoot Paul, tell me what level of debugging you might like...
-
Only thought is what's VIRTUALADDRESSLIMIT set to? Not that Samba should be using lots of RAM, but still of interest...
-
Any chance for a new server too?
Definitely - the executable is built, just needs testing and inevitably debugging. I suspect more work will be needed to stabilise it - noting the issues you saw with 4.13 and 4.15 server....
-
Only thought is what's VIRTUALADDRESSLIMIT set to? Not that Samba should be using lots of RAM, but still of interest...
VIRTUALADDRESSLIMIT=2048
-
OK, starting smbd gives:
[2023/12/18 18:10:07.961000, 0] ../../source3/smbd/server.c:1757(main)
Server priority set to PRTYC_FOREGROUNDSERVER
[2023/12/18 18:10:07.961000, 0] ../../source3/smbd/server.c:1760(main)
smbd version 4.18.9 started.
Copyright Andrew Tridgell and the Samba Team 1992-2023
[2023/12/18 18:10:08.203000, 0] ../../source3/lib/util.c:493(reinit_after_fork)
messaging_reinit() failed: NT_STATUS_NETWORK_BUSY
[2023/12/18 18:10:08.420000, 0] ../../source3/lib/util.c:493(reinit_after_fork)
messaging_reinit() failed: NT_STATUS_NETWORK_BUSY
[2023/12/18 18:10:08.428000, 0] ../../lib/util/become_daemon.c:123(exit_daemon)
exit_daemon: daemon failed to start: Samba cannot init the cleanupd, error code 13
Will debug as time permits...
-
OK....smbd.exe seems to work now :) will do a bit more testing before packaging something up....
-
I managed to fix some issues with smbd this morning - and it is now able to serve files here.
It has only been very lightly tested. I suspect there are still some remaining issues in https://github.com/psmedley/at-funcs which may cause issues.
There are known issues with keyboard jankiness with smbclient - but the netdrive plugin seems to work ok.
I also plan to investigate creating a forwarder DLL to forward calls to smbcl411.dll to smbcl418.dll - will need to investigate how to do this :)
Link to binaries: https://smedley.id.au/tmp/samba-4.18.9-os2-20231226.zip
The only binary in here that has been tested is smbd.exe - and smbpasswd.exe - YMMV with the others :)
-
Thanks Paul! I gave the new server a try - it seems to start up just fine with my current smb.conf, no errors or complaints, and the new 4.18 client with NDFS attaches to it with no errors or complaints, but when I try to browse the share from the WPS it sees 0 files or directories. From a command line I get:
[N:\]dir
The volume label in drive N is NETDRIVE.
Directory of N:\
SYS0109: The pipe has been ended.
Not sure what this is telling me...
Regards,
EDIT: attached logs from failed session in case it's interesting...
-
Thanks - I'll try and reproduce locally. Does this only happen with both server and client on 4.18?
-
Paul,
I have been using the 4.18 client with my 4.11 server since it came out with no problems. I did the test on the 4.18 server with the same client - haven't tried any other clients.
Regards,
-
I have been using the 4.18 client with my 4.11 server since it came out with no problems. I did the test on the 4.18 server with the same client - haven't tried any other clients.
Interesting... I'll test locally with 4.18 on client and server. I assume the client and server are on *different* machines? (Just to rule out some weird interactions when they're both running on the same box).
-
Paul,
Yes... different machines (192.168.21.2 is the server, 192.168.21.3 is the client).
Regards,
-
OK I setup another box for testing purposes - but I couldn't reproduce. Perhaps I didn't try for long enough?
Screenshot attached of a folder with several hundred images....
-
Hey Paul,
Could you share your smb.conf? Maybe mine has something incompatible in it.... I'll upload it too (renamed smb.txt)...
Regards,
-
Hey Paul,
I just noticed there are 3 files not in the 4.18 archive you posted that are in all the other versions I have:
samba4kgetcred.exe
samba4kinit.exe
samba4kpasswd.exe
I just overwrote the SAMBA folder with this new 4.18 version, so there are still those 3 files from the 4.11 version there. Could that be causing my trouble? Should those files be in the 4.18 archive?
Regards,
-
Could you share your smb.conf? Maybe mine has something incompatible in it.... I'll upload it too (renamed smb.txt)...
Mine is attached...
I was thinking last night that perhaps I didn't have EA support enabled - but it turns out I do :)
-
I just noticed there are 3 files not in the 4.18 archive you posted that are in all the other versions I have:
samba4kgetcred.exe
samba4kinit.exe
samba4kpasswd.exe
I just overwrote the SAMBA folder with this new 4.18 version, so there are still those 3 files from the 4.11 version there. Could that be causing my trouble? Should those files be in the 4.18 archive?
These are part of the 'built-in' heimdal that is included in Samba. At some point in 4.11, I must have been experimenting with using that, instead of system heimdal. They aren't necessary or used for the server.
-
Paul,
OK, thanks for that info. I still haven't been able to get 4.18 server to work, even with a pared down smb.conf. Always 0 files and directories with the WPS, and 'pipe has been ended' on command line, but 4.11 server works fine.
How exactly do you start SAMBA? I have been using the Netlabs utilities to start and monitor the server and up to now they have worked well. Maybe they are interfering with 4.18 somehow?
Also, what Heimdal needs to be installed? I have 'Heimdal' and 'Heimdal-libs' installed (7.7.0), but I notice there are other Heimdal packages available (but not installed). What do you have installed?
Regards,
-
Weird - so it *never* serves files at all? I was thinking that it served files for a period then stopped.
I just start the daemon with an object that starts smbd.exe
Heimdal 7.7.0 libs as included with AOS should be more than enough.
What about trying to connect from another OS? My initial testing was with smbclient from Ubuntu....
-
Paul,
No, don't get anything to show up, although the share is mounted OK. I have now tried Linux Mint, Windows 7 and Windows 11 and they won't work either (Linux gave a 'software error', both Windows appeared to connect, but are blank). Tried starting just smbd.exe object but no help
I'll attach a log and example exceptq file. The log shows many traps in smbd, but they are all almost exactly like the one uploaded. I started the server, then attached from my ArcaOS client, then tried to browse with the WPS, then did a 'dir' on the command line in the share root, then shut down the server and collected the log. Maybe there is a clue in there somewhere...
Regards,
-
Thanks Dave - I'll have a look at the log for clues today. I'm also rebuilding Samba with debug symbols, which will hopefully produce a more usable TRP file.
Edit: OK I see the SIGABRT - but it's not making sense to me.
[2023/12/31 09:42:23.143000, 0] ../../source3/lib/util_path.c:321(subdir_of)
PANIC: assert failed at ../../source3/lib/util_path.c(321): parent[2] == '/'
[2023/12/31 09:42:23.143000, 0] ../../lib/util/fault.c:175(smb_panic_log)
===============================================================
[2023/12/31 09:42:23.143000, 0] ../../lib/util/fault.c:176(smb_panic_log)
INTERNAL ERROR: assert failed: parent[2] == '/' in pid 514 (4.18.9)
I may need to log the value of parent to see why the assert is failing.
As a WAG, can you change " path = C:\MPTN\ETC\samba\spool\EPSONXP-" to "path = C:/MPTN/ETC/samba/spool/EPSONXP-" ?
Edit2: this probably won't help - I also have a couple of examples of the failed assertion in parent[2] - I've added some logging to help understand what's going on.
-
Hey Paul,
Yeah, I already tried changing to C:/MPTN/ETC/samba/spool/EPSONXP- but it didn't help... left it like that though, just in case.
Regards,
-
Please try with https://smedley.id.au/tmp/smbd-4.18.9-20240101.zip - it won't fix it, but should log the output of parent before the assertion fails.
I'll also try and reproduce locally.
-
Happy New Year Paul!
I tried this smbd.exe, and did the exact same routine as the last logs (start server, then attach client to share, then try browsing with WPS (shows 0 files or directories), then dir on root of share drive from command line (says pipe has ended), then stopped server and collected logs. No exceptq file was created this time, and no trap shows in the logs - attached.
Regards,
-
OK I can't explain the lack of TRP files, but you're still (not unexpectedly) getting:
[2023/12/31 22:16:47.037000, 0] ../../source3/lib/util_path.c:322(subdir_of)
PANIC: assert failed at ../../source3/lib/util_path.c(322): parent[2] == '/'
But without my logging. Can you run with 'smbd -d 8' and see if that adds the necessary info?
-
I tried this smbd.exe, and did the exact same routine as the last logs (start server, then attach client to share, then try browsing with WPS (shows 0 files or directories), then dir on root of share drive from command line (says pipe has ended), then stopped server and collected logs. No exceptq file was created this time, and no trap shows in the logs - attached.
I can reproduce when attaching to a share that is a whole drive.
Working Share - u:/website
Non-working Share - c:/
Edit: So the trailing / is getting stripped somewhere, so parent ended up just being c: - so checking the a / to confirm a drive failed:
Updated code to:
#ifndef __OS2__
SMB_ASSERT(parent[0] == '/');
SMB_ASSERT(subdir[0] == '/');
#else
SMB_ASSERT(parent[1] == ':');
SMB_ASSERT(subdir[1] == ':');
#endif
And a share of a whole drive works now. Updated smbd at https://smedley.id.au/tmp/smbd-4.18.9-20240101b.zip
-
Hey Paul!
Now it works... thanks! I'll test for awhile and see if I get any of the issues I got with the last 2 versions - but a quick test shows I can browse with the WPS and open files (JPG and MP3) and move stuff around...
Regards,
-
Paul,
Well, it's back. After using the share for about 20 minutes, it stops working - WPS shows 0 files and directories on the share and the command line shows:
[N:\]dir
The volume label in drive N is NETDRIVE.
Directory of N:\
SYS0008: There is not enough memory available to process this command.
All available memory is in use.
Mem/v on the client shows:
[C:\]mem /v
Total physical memory: 16,270 MB
Accessible to system: 3,222 MB
Additional (PAE) memory: 13,048 MB
Resident memory: 153 MB
Available virtual memory: 3,596 MB
Available process memory:
Private low memory: 326 MB
Private high memory: 2,173 MB
Shared low memory: 231 MB
Shared high memory: 1,199 MB
Mem/v on the server shows:
[C:\]mem /v
Total physical memory: 16,270 MB
Accessible to system: 3,222 MB
Additional (PAE) memory: 13,048 MB
Resident memory: 180 MB
Available virtual memory: 2,948 MB
Available process memory:
Private low memory: 355 MB
Private high memory: 2,058 MB
Shared low memory: 235 MB
Shared high memory: 1,386 MB
Not clear why the client thinks there is no memory?
Regards,
-
Interesting. WHen this happens, does the server still accept connections from other machines? Does closing and restarting ndctl.exe resolve the issues on the client? Any TRPs on the server?
Most of my testing has been to a share which is a subdir (ie u:/share) vis a full drive - are you able to check if this makes any difference?
I'll try harder to reproduce later, but I have a full day of lounge/hallway painting ahead of me today.
-
Paul,
Good questions..did some testing-
I tried using a Windows machine (this is with the updated smbd.exe on the server) when the OS/2 machine showed '0 files' and Windows worked! Windows works fairly good with the 4.18 server on OS/2 with the new smbd.exe (maybe a little slower than the 4.11 server) - both when sharing the root of the drive and a subdirectory.
Yes, when I restart NDCTL after I get the '0 files' condition on OS/2, it starts to work again. For awhile... There are no traps on the server and don't need to restart it.
I tried sharing only one folder on my share drive (not the root), and I have yet to get the '0 files' condition on OS/2. Been at least an hour now and still good... except:
There is one folder I cannot browse on the OS2 client. It has about 2500 files and 6 directories in it. It worked with the 4.11 server (took awhile to populate), but I end up with a '0 files' condition (takes about 90 seconds while the WPS is blocked) with 4.18. Command line doesn't work either, I get this message:
[N:\os2]dir
The volume label in drive N is NETDRIVE.
Directory of N:\os2
SYS0318: Message file OSO001.MSG cannot be found for message 0109.
Get the same on this folder if I share the root too. Windows can read this folder either way, though it is rather slow dispaying it.
Regards,
-
David and Paul,
...I tried using a Windows machine (this is with the updated smbd.exe on the server) when the OS/2 machine showed '0 files' and Windows worked! Windows works fairly good with the 4.18 server on OS/2 with the new smbd.exe (maybe a little slower than the 4.11 server) - both when sharing the root of the drive and a subdirectory.
Yes, when I restart NDCTL after I get the '0 files' condition on OS/2, it starts to work again. For awhile... There are no traps on the server and don't need to restart it...
This may be a VERY remote possibility, but for quite some time I've had a similar issue with my NetDrive install here.
Basically everything works fantastic, until it doesn't! The symptoms are exactly what you describe: the share connection still shows up in NetDrive, but attempting to query any of the share's contents fails and most often simply produces the '0 files' message. For me that typically manifested itself as WPS folders that were simply empty when I would open them up.
Given that we really didn't have anyone around to troubleshoot the NetDrive problem I took to writing some REXX stuff to periodically check that the NAS share is still "accessible". When it no longer is, I simply bounce NDCTL and things come right back up.
Weird...I have this scheduled through cron here, runs every 15 mins and AFAIK I never experience the annoying "grrrh, NetDrive is down again" feeling.
Like I said above, very REMOTE possibility, but the symptoms are precisely what I'm seeing here, so while the new samba release may not be the absolutely root cause of what you're seeing, it may somehow be contributing to NetDrive failing???
-
Hey Dariusz,
What server and version is the NAS running? I have only seen the '0 files' issue on OS/2 SAMBA server versions after 4.11 (which does not do it) (Paul's 4.13, 4.15, and now 4.18 all do it when serving a root directory). Seems like there is something in the OS/2 client that triggers this phenomenon, because Windows clients don't do it...
Regards,
-
...What server and version is the NAS running?...
Don't know off the top of my head, will telnet into the NAS box a bit later to see if I can get something from the LOGs (old ZyXel NSA425 box).
I do use the 4.11.12 client on our OS/2 side though.
-
Good questions..did some testing-
I tried using a Windows machine (this is with the updated smbd.exe on the server) when the OS/2 machine showed '0 files' and Windows worked! Windows works fairly good with the 4.18 server on OS/2 with the new smbd.exe (maybe a little slower than the 4.11 server) - both when sharing the root of the drive and a subdirectory.
Yes, when I restart NDCTL after I get the '0 files' condition on OS/2, it starts to work again. For awhile... There are no traps on the server and don't need to restart it.
I tried sharing only one folder on my share drive (not the root), and I have yet to get the '0 files' condition on OS/2. Been at least an hour now and still good... except:
There is one folder I cannot browse on the OS2 client. It has about 2500 files and 6 directories in it. It worked with the 4.11 server (took awhile to populate), but I end up with a '0 files' condition (takes about 90 seconds while the WPS is blocked) with 4.18. Command line doesn't work either, I get this message:
[N:\os2]dir
The volume label in drive N is NETDRIVE.
Directory of N:\os2
SYS0318: Message file OSO001.MSG cannot be found for message 0109.
Get the same on this folder if I share the root too. Windows can read this folder either way, though it is rather slow dispaying it.
OK interesting. Now that we've narrowed down that the client issue only occurs when sharing the whole drive it gives me some clues. I suspect it relates to the previous issue where the trailing / is being removed if it isn't the 1st characted. This makes sense on linux if the share is /website/ but not on OS/2 where we mght want to share c:/
For the folder N:\os2 it would be interesting to see client logs. Maybe there is a bug with a folder with lots of files?
-
Does https://smedley.id.au/tmp/smbd-4.18.9-20240102.zip work any better for shares of a whole drive? We're no longer stripping off the trailing slash on shares that are a whole drive.
-
Paul,
No improvement with this one unfortunately (not any worse either). I set my smb.conf on my client to:
[global]
workgroup = IBMPEERS
loglevel = 2
client min protocol = NT1
log file = C:\MPTN\ETC\samba\log\log.smbd.%U.%M
and restarted ndctl, but I am not getting any logs. How do I set up logging on the client side?
Regards,
-
HI Dave,
No improvement with this one unfortunately (not any worse either). I set my smb.conf on my client to:
[global]
workgroup = IBMPEERS
loglevel = 2
client min protocol = NT1
log file = C:\MPTN\ETC\samba\log\log.smbd.%U.%M
and restarted ndctl, but I am not getting any logs. How do I set up logging on the client side?
Create an empty file in the root of the drive where you have Netdrive installed, called 'ndpsmb.dbg' then restart the daemon. You should end up with a ndpsmb.log in x:\var\log\ndpsmb.log IIRC.
To be clear - I didn't expect the updated daemon to help display the folder that won't show on the client - I was more curious if it helped with the 'out of memory' errors after a period of browsing.
-
Paul,
Yes, I meant that I still get the 'out of memory' problem when sharing the root of a drive with that new build of smbd.exe...
Attached is the log I got when I started ndctl, then tried to navigate to the folder that doesn't display via WPS on the shared drive, then by command line, then shut down ndctl.
Regards,
-
Hi Dave,
Bummer that you still get the 'out of memory' error :( I wish it was easier to reproduce - I tried for a while this morning with an OS/2 client and the 4.18 server. It may be worth trying to get a smbd log with -d 8 and a matching client log - and trying to pinpoint the exact time the error occurs.
Re: the 2nd problem with the folder that doesn't display, is it just the 'software\os2' folder that doesn't display?
The log seems to stop at 2024/01/02 16:38:27.17: 9 2: NdpFindStart <software\os2\OSO001.MSG> (\software\os2\OSO001.MSG) cnt 0 109
Is \software\os2\OSO001.MSG a valid file? Can you try with EA Support disabled on the share? I wonder if there is a corrupt EA that we can't read - hence Windows doesn't show the issue as it doesn't support EAs?
-
Check DPATH as well, software\os2\OSO001.MSG should be x:\os2\system\OSO001.msg, at least that is where it is on my system with X:\os2\system on the DPATH
-
Check DPATH as well, software\os2\OSO001.MSG should be x:\os2\system\OSO001.msg, at least that is where it is on my system with X:\os2\system on the DPATH
In this case, I think Dave (the other Dave) may have a backup copy of os2\* in his Samba Server....
-
Guys,
C:\OS2\SYSTEM is on the DPath and OSO001.MSG exists there. It is indeed just the \software\os2 folder that does not display. I have 'Supports EAs' turned off in the ndctl program (always do), so it should ignore EA's - does the plugin honor that (it is not in smb.conf - I'll add it)? I can also clean EA's in that directory on the server.
That last line is the last thing I did before collecting the log: Did a 'dir' on the N:\software\os2 directory from the command line, and got the 'SYS0318: Message file OSO001.MSG cannot be found for message 0109.' message. That the log says 'software\os2\OSO001.MSG' is kinda bizarre - that file is not in that directory.
Regards,
-
I'd have to check the plugin code regarding EA's - I wonder if it's worth testing with EA support disabled in smb.conf? How big is that software\os2 folder? I wonder if it's worth zipping it up to see if it works for me on my setup? I'll go back and have another look and see that the previous logs were telling us...
Interesting.... the final lines before the OSO001.MSG are:
2024/01/02 16:37:16.14: 9 2: CacheWriteBegin: software\os2
2024/01/02 16:37:16.14: 9 2: dircache_write_begin returning ctx 0x3fa860
2024/01/02 16:37:30.99: 9 3: NdpRsrcQueryInfo in
2024/01/02 16:37:30.99: 9 3: NdpRsrcQueryInfo 0
2024/01/02 16:37:50.63: 9 2: NdpFindStart <software\os2\*> (\software\os2\*) cnt 0 109
*EVERY* other time dircache_write_begin is called, the log looks like:
2024/01/02 16:37:16.14: 9 2: CacheWriteBegin: software\os2
2024/01/02 16:33:10.84: 9 2: dircache_write_begin returning ctx 0x329ca0
2024/01/02 16:33:10.87: 8 2: adding <.> 293 1426065411 261
2024/01/02 16:33:10.87: 9 2: dircache_write_entry 0x329ca0
So, it appears we're getting stuck somewhere between https://github.com/psmedley/ndpsmb/blob/master/src/smbwrp.c#L1248 & https://github.com/psmedley/ndpsmb/blob/master/src/smbwrp.c#L1264
Just for the sake of something to test - try https://smedley.id.au/tmp/ndpsmb.zip which disables the dircache....
-
Updated ndpsmb where the code for list_files is synchronised against upstream - combining smb1 and smb2 directory listings into a single function. Bugs expected :)
https://smedley.id.au/tmp/ndpsmb-3.18.2-samba418-20240103.zip (Needs smbcl418.dll from ndpsmb-3.18.1-samba418-20231217.zip)
Code at https://github.com/psmedley/ndpsmb/tree/cli_list_resync
-
Paul,
I quickly tested both of these new ndpsmb.dll's, but neither helped with the \software\os2 directory. Tried with ea support on and off on both the server and client, but no difference.
The \software\os2 directory contains 6 directories and over 2500 files for over 22GB of data. By far the largest directory on the disc.
Gotta run to work... more testing later.
Regards,
-
I quickly tested both of these new ndpsmb.dll's, but neither helped with the \software\os2 directory. Tried with ea support on and off on both the server and client, but no difference.
The \software\os2 directory contains 6 directories and over 2500 files for over 22GB of data. By far the largest directory on the disc.
Gotta run to work... more testing later.
OK I have an *idea*.... I think the default timeout on Samba is 20 seconds. It's possible that due to the number of files - the query is taking more than 20 seconds to execute and the connection is dropped. I've just done a built which should set the timeout to 60 seconds - https://smedley.id.au/tmp/ndpsmb-3.18.2-samba418-20240104.zip If it doesn't work, can I have a new ndpsmb.log to see if it changed anything? Also, can you try connecting with smbclient - in theory - it should also default to a 20 second timeout and show the same issue (if I'm right).
-
Paul,
Something is wrong with this one - when I try to open the shared drive, ndctl crashes with a POPUPLOG:
01-04-2024 06:23:08 SYS3175 PID 003e TID 0002 Slot 00a7
C:\PROGRAMS\NDFS\NDCTL.EXE
c0000005
1e176365
P1=00000001 P2=302f3130 P3=XXXXXXXX P4=XXXXXXXX
EAX=302f3130 EBX=0254f534 ECX=00320cb0 EDX=00325d60
ESI=0254f534 EDI=00325d60
DS=0053 DSACC=d0f3 DSLIM=bfffffff
ES=0053 ESACC=d0f3 ESLIM=bfffffff
FS=150b FSACC=00f3 FSLIM=00000030
GS=0000 GSACC=**** GSLIM=********
CS:EIP=005b:1e176365 CSACC=d0df CSLIM=bfffffff
SS:ESP=0053:0254f0fc SSACC=d0f3 SSLIM=bfffffff
EBP=0254f134 FLG=00010216
NDPSMB.DLL 0001:00006365
I'll attach the log too...
Regards,
-
Paul,
Also tried smbclient from 4.18 on the client machine (ndctl not running) and something isn't right there either - I can start smbclient and attach to the share no problem, but it will only take 3 letters typed: it immediately executes when I hit the 3rd letter, so I can't change directories. It will list the contents of the root though... Here's an example:
[C:\programs\samba]smbclient \\MAINMACHINE\D
Password for [IBMPEERS\DaveM]:
Try "help" to get a list of possible commands.
smb: \> hel
? allinfo altname archive backup
blocksize cancel case_sensitive cd chmod
chown close del deltree dir
du echo exit get getfacl
geteas hardlink help history iosize
lcd link lock lowercase ls
l mask md mget mkdir
more mput newer notify open
posix posix_encrypt posix_open posix_mkdir posix_rmdir
posix_unlink posix_whoami print prompt put
pwd q queue quit readlink
rd recurse reget rename reput
rm rmdir showacls setea setmode
scopy stat symlink tar tarmode
timeout translate unlock volume vuid
wdel logon listconnect showconnect tcon
tdis tid utimes logoff ..
!
Regards,
-
Sorry about that - appears https://github.com/psmedley/ndpsmb/commit/2bba56334ca2359129f0e0cd61bdd2c0be63d8c5 wasn't a good fix :/
Please try with https://smedley.id.au/tmp/ndpsmb-3.18.2-samba418-20240105.zip
re:smbclient -I forgot I hadn't uploaded a build with the readline fix... https://smedley.id.au/tmp/smbclient-4.18-os2-20240105.zip
-
Hey Paul!
This new ndpsmb.dll works... I can browse the share at \software\os2 now! It takes longer than it used to do when using the 4.11 server, but it works. This kinda is similar to Windows too, which seems to take longer than it used to, but works. Also, so far I can still browse even though I am sharing the root of the drive - over 30 minutes so far.
The smbclient is better - I can now type more than 3 characters at the smb: prompt, but now I have to type each character twice (type 2 to get 1) like:
ccdd ssooffttwwaarree
to change directory to \software
then, when I get to \software\os2 and try to llss I get:
smb: \> cd software
smb: \software\> cd os2
smb: \software\os2\> ls
NT_STATUS_INVALID_NETWORK_RESPONSE listing \software\os2\*
smb: \software\os2\> SMBecho failed (NT_STATUS_CONNECTION_DISCONNECTED). The con
nection is disconnected now
But when I go back to the WPS I can list that directory, and from a command line too (although it takes some time). Maybe this is because NDFS is still attached - I need to check...
Thanks!
EDIT: Nope - stopping the ndctl program does not change the smbclient result...
-
Hey Dave,
Well that's pretty good news all around - except for the slower speed bit. Are you using SMB1 or SMB2+ to connect?
re: smbclient, maybe you need an updated smbcl418.dll as well - I forget now what I had to do to fix readline... Try with https://smedley.id.au/tmp/smbclient-4.18-os2-20240105b.zip
That NT_STATUS_CONNECTION_DISCONNECTED is what I was expecting - due to the command taking longer than 20 seconds, the command times out and the connection is disconnected.
There might be some optimisation of the atfuncs in https://github.com/psmedley/at-funcs - this is the key difference between 4.11 and 4.12+
-
Hey Paul,
This smbclient seems doesn't need double letters - thanks! Still doesn't list \software\os2 though...
How do I force whether it uses smb1 or smb2? Don't see a choice in the ndctl console...
Regards,
-
With smbclient you can use the -t parameter to set the timeout. It smbclient -t 60 will increase the timeout to 60 seconds.
Again with smbclient, you can force the protocol using -m - so -m NT1 should force nt1, and -m SMB3 should force SMB3.
It may also be worth testing if:
Smbclient -m SMB3 --client-protection=off
Speeds things up. Encryption is enabled by default in newer samba versions, and may be slowing things down (but is more secure).
-
Thanks Paul. I tried 'smbclient -t 60 \\MAINMACHINE\D' and I could get a list of \software\os2 - took awhile but it worked. Also tried 'smbclient --client-protection=off \\MAINMACHINE\D' but could not get a listing of \software\os2. Gotta have that -t 60.
Just for kicks, I tried using the 4.11 client with the 4.18 server, and it has the same trouble the 4.18 client did at first. All of this testing seems to imply the 4.18 server is serving up files much slower than the 4.11 server did....
Regards,
-
David,
...How do I force whether it uses smb1 or smb2? Don't see a choice in the ndctl console...
NDCTL has it, but it's at the individual resource level, so open one up (or create a new one if you don't have anything saved) and look for the "Support NTLMv1" radio button...right hand side of the window.
EAs support can be dis/en-abled here as well.
-
NTLM is a deprecated authentication mechanism, not a SMB protocol....
-
Thanks Paul. I tried 'smbclient -t 60 \\MAINMACHINE\D' and I could get a list of \software\os2 - took awhile but it worked. Also tried 'smbclient --client-protection=off \\MAINMACHINE\D' but could not get a listing of \software\os2. Gotta have that -t 60.
Just for kicks, I tried using the 4.11 client with the 4.18 server, and it has the same trouble the 4.18 client did at first. All of this testing seems to imply the 4.18 server is serving up files much slower than the 4.11 server did....
Might be worth trying with:
client smb encrypt =off
In SMB.conf, just to rule out encryption as the cause.
-
Paul,
Tried 'client smb encrypt = off' on both client and server, but it made no difference to the performance, and I still needed to add -t 60 to smbclient to get a listing of \software\os2...
Regards,
-
OK I give in, it's general slowness in the server :)
Any chance of an 'smbd -d 8' with both 4.11 and 4.18 of a directory listing? Doesn't need to be software/os2 - just trying to identify where the delays are being created. Might be best to upload to a GitHub issue or my mantis.
-
OK some of the error handling in list_files() was borked - and made worse with my changes in the last few days. Previously the error handling was ok for SMB1, and broken for SMB2+ - then with the latest resync - broken for both SMB1 and SMB2.
https://smedley.id.au/tmp/ndpsmb-3.18.2-samba418-20240105b.zip should fix this - and also increases the default client timeout to 60s whilst we try and resolve issues with performance in smbd.
Code is in https://github.com/psmedley/ndpsmb/tree/cli_list_resync - I'll merge to master once a few others have confirmed nothing is borked.
-
Hey Paul,
Something weird with this one - I start ndctl, it connects, I can browse the root, but when I go to \software\os2 (via the WPS), it doesn't list all files (maybe about 2100 of them), then ndctl crashes with a POPUPLOG:
01-05-2024 06:48:58 SYS3175 PID 005d TID 0002 Slot 0089
C:\PROGRAMS\NDFS\NDCTL.EXE
c0000005
1ce7b65c
P1=00000001 P2=00000040 P3=XXXXXXXX P4=XXXXXXXX
EAX=00000000 EBX=1069f2d0 ECX=00000002 EDX=005d0002
ESI=00000010 EDI=1069f2d8
DS=0053 DSACC=d0f3 DSLIM=bfffffff
ES=0053 ESACC=d0f3 ESLIM=bfffffff
FS=150b FSACC=00f3 FSLIM=00000030
GS=0000 GSACC=**** GSLIM=********
CS:EIP=005b:1ce7b65c CSACC=d0df CSLIM=bfffffff
SS:ESP=0053:0254f624 SSACC=d0f3 SSLIM=bfffffff
EBP=0254f64c FLG=00010206
SMBCL418.DLL 0001:0013b65c
I'll also attach the log while this happened. I'll do the smbd -d 8 thing and upload to your Mantis when I get time - off to work now.
Regards,
-
Interesting.....
We start seeing:
2024/01/05 06:47:58.90: 9 3: NdpFindStart: dir [\Software\OS2\Drivers\], dir_mask [*], mask [\Software\OS2\Drivers\*], szPath [Software\OS2\Drivers\*]
2024/01/05 06:47:58.90: 4 3: cli_echo failed: NT_STATUS_CONNECTION_DISCONNECTED
I'll have to stare at things again....
I don't think it will help, but there are some cleanups in https://smedley.id.au/tmp/ndpsmb-3.18.2-samba418-20240106.zip
-
Paul,
I'm getting 'not found' on that link. Also uploaded a couple of logs on your Mantis of runs with smbd -d 8 with both 4.11 and 4.18 servers...
Regards,
-
Apologies - file should be live now. One thought - it's possible errors were being ignored previously and are being reported now. I wonder if all files were actually being displayed with the previous 'good' build (ie the one with the increased timeouts).
Thanks for the smbd logs, I'll stare at them later, gotta finish painting first!
-
Thanks Paul,
This one is working on the \software\os2 directory (takes a long time to display), but now I eventually get the 'out of memory' condition again. No POPUPLOG, and restarting ndctl allows it to work again. I'll attach a log of browsing around until it runs out of memory (only takes a few minutes).
Regards,
-
I'm struggling to download that log, any chance of zipping it? Meanwhite, I'm trying to put enough stuff into a directory such that I can trigger this locallly.
-
Thanks Paul,
This one is working on the \software\os2 directory (takes a long time to display), but now I eventually get the 'out of memory' condition again. No POPUPLOG, and restarting ndctl allows it to work again. I'll attach a log of browsing around until it runs out of memory (only takes a few minutes).
Regards,
Paul, I zipped it up for you.
-
So this is weird.... I now have a folder u:\website\2023 which has 24,727,763,360 bytes (23GB) in 3,889 files and 0 dirs
Even with the original plugin for Samba 4.18.x - the plugin can list the folder - the directory listing takes 45 seconds before it shows anything, but it works.
With the latest 20240106 plugin, the directory listing also works.
@Dave - can you remove x:\ndpsmb.dbg and see if it helps?
I also installed Samba 4.11 - and the directory listing also takes close to 45 seconds before it shows anything. I *cannot* explain why @Dave needed the increased timeout to get the directory listing working.
My Samba server is running on baremetal AOS 5.0 - my test client is a virtualised AOS 5.0
-
Some small tidy ups in https://smedley.id.au/tmp/ndpsmb-3.18.2-samba418-20240106b.zip
-
Hey Paul,
You are sharing the root of the drive? What happens when you use smbclient without the '-t 60' to list that folder? I get:
smb: \> cd software
smb: \software\> cd os2
smb: \software\os2\> ls
NT_STATUS_IO_TIMEOUT listing \software\os2\*
smb: \software\os2\> SMBecho failed (NT_STATUS_INVALID_NETWORK_RESPONSE). The co
nnection is disconnected now
This is with ndpsmb.dbg removed. Also, eventually when heavily browsing the share I get the 'out of memory' condition with 20240106 too.
Regards,
-
Hey Paul,
You are sharing the root of the drive? What happens when you use smbclient without the '-t 60' to list that folder? I get:
smb: \> cd software
smb: \software\> cd os2
smb: \software\os2\> ls
NT_STATUS_IO_TIMEOUT listing \software\os2\*
smb: \software\os2\> SMBecho failed (NT_STATUS_INVALID_NETWORK_RESPONSE). The co
nnection is disconnected now
This is with ndpsmb.dbg removed. Also, eventually when heavily browsing the share I get the 'out of memory' condition with 20240106 too.
Yep, sharing u:/. I did my testing with smbclient under linux - significant delay but it still worked.
ndpsmb.dbg will only impact the Netdrive plugin, not smbclient.
My final (well for now) idea - what's the contents of the smb.conf on the client machine you're using?
-
Paul,
Here it is:
[global]
workgroup = IBMPEERS
loglevel = 0
client min protocol = NT1
I've been trying all day to get this thing to work right, but so far no luck. One thing strange about the \software\os2 directory is that it always blocks the WPS when I try to list it (with the WPS). Other large directories on the share don't do that. One thing I still need to do is break up the files in that directory into sub-directories and see what happens.
In C:\MPTN\ETC\samba\lock on both server and client there are *.tdb files (a lot on the server). Do you know what they do and can they be deleted? I wonder if there may be some kind of cruft or corruption in some of those...
I searched thru dozens of logs too, but didn't see anything that jumped out to indicate a problem, but I really don't know what a lot of it is for.
I'll keep trying...
Regards,
-
Provided the Server/client are not running, it's safe to remove all the tdb files...
Do you *need* to enable NT1 connections? I'm certain this isn't the cause of the problem, but unless you have an ancient NAS around that only runs Samba 3.x, it's safest to remove the support for NT1...
It would be nice if some others could test the updated smbd / netdrive plugin to get some more data points...
-
...It would be nice if some others could test the updated smbd / netdrive plugin to get some more data points...
OK, but what is the exact use-case you are looking for Paul?
I had previously tried your client update and that results is a "face meets brick wall" (LOL) event here, been following the thread all along, but so far I'm not picking up on anything that I can specifically test out.
-
In particular, running the server with the updated client and seeing if it works as expected. In theory at least - it should be possible to run this is a 'drop in' replacement for the Samba 3.3.x server. Ie shutdown Samba 3.x server - start running smbd/nmbd from Samba 4.18.x
@Darcio I need to go back and read your previous posts to see if I have any other ideas...
-
Sooo...whatever is causing the issue is a brick-wall for me. Happy to troubleshoot Paul, tell me what level of debugging you might like...
A few thoughts.... make sure you're running the latest libcn0.dll and libcx0.dll.
Perhaps create a ndpsmb.dbg in the root of the boot drive and after the error occurs, send a copy of \var\log\ndpsmb.log
-
Hey Paul,
No, I don't need NT1 connections. That's just what AOS created as default - I have never changed that file (except for the WORKGROUP). Guess I'll try with SMB2...
Regards,
-
No, I don't need NT1 connections. That's just what AOS created as default - I have never changed that file (except for the WORKGROUP). Guess I'll try with SMB2...
It should be using SMB2 anyway - that setting just defines the _minimum_ SMB level that Samba will negotiate to. The Samba team increased this from NT1 (aka SMB1) to SMB2 many versions ago (in 4.11 in fact - https://www.samba.org/samba/history/samba-4.11.0.html)
I patched the source to 4.19.3 today - building now...
-
Paul,
I've tried everything I could think of, but nothing helps. I even uninstalled SAMBA from the server, deleted all files in C:\MPTN\ETC\samba (there were 55000 files in\lock\msg.lock !) then reinstalled the Netlabs package, and upgraded to your latest SAMBA but still have the slowness issue at the client. Went back to 4.11 on the server and everything works well, even the 4.18 smbclient on the client machine works without -t 60 then.
BTW, deleting those 55000 files makes the server start MUCH faster. Wonder if there is a way to clean those up before the server is shut down...
Regards,
-
In startup.cmd or as a regular cmd file in startup or shutdown folders, perhaps something like,
if exist \lock\msg.lock rm-rf \lock\msg.lock\*
Likely paths could be adjusted.
This would at clean them up on boot. Could also be part of a wrapper script that also starts the server.
-
Thanks Dave! There is a smbexit.cmd file already (installed with the Netlabs SAMBA) - I added that to the end of it (with proper paths) and it works...
Regards,
-
I raised https://mantis.smedley.id.au/view.php?id=779 for the leftover files.
-
Thanks Paul. Wonder if I could see your inetcfg.ini file? At one point I spent some time tuning mine for internet performance, maybe something there is tripping up SAMBA? I could test here with yours...
Regards,
-
Mine is the defaults:
keepalive 300
synattack 1
-
Very light testing, but 4.19.3 seems to work like 4.18.x Then they released 4.19.4 overnight - so rebuilding with those patches now. Hopefully something to test tomorrow.
New gnutls30.dll will be needed: https://smedley.id.au/tmp/gnutls30.zip
-
Client: https://smedley.id.au/tmp/ndpsmb-4.19-1-samba419-20240110.zip
Server and other stuff: https://smedley.id.au/tmp/samba-4.19.4-os2-20240110.zip
Seems to work like 4.18.9 to me in my limited testing...
-
BTW, deleting those 55000 files makes the server start MUCH faster. Wonder if there is a way to clean those up before the server is shut down...
https://smedley.id.au/tmp/smbd-4.19.4-20240112.zip improves (but doesn't completely fix) the situation.
-
BTW, deleting those 55000 files makes the server start MUCH faster. Wonder if there is a way to clean those up before the server is shut down...
https://smedley.id.au/tmp/smbd-4.19.4-20240112.zip improves (but doesn't completely fix) the situation.
https://smedley.id.au/tmp/smbd-4.19.4-20240113.zip should correct this. It includes changes to clean up any errant lock files during smbd exit.
-
Hey Paul,
Tried the new 4.19 client and it works great with the 4.11 server with no issues whatever, so I'm leaving that installed on the client.
Tried the new 4.19 server and I have the same issues as before - eventually I get the 'out of memory' error on the command line, and '0 files' with the WPS. SMBCLIENT will also time out on the \software\os2 directory without the -t 60 directive. All this with the default inetcfg.ini just like yours on server and client, so that isn't the culprit.
The fact it works for you and not me implies my configuration is somehow different. Need to figure out what - what NICs are you using on the server and client? My server has an Intel NIC, and client has a Realtek.
I'm interested in any ideas what might influence SAMBA in the OS/2 system that could be changed in the normal course of usage...
Regards,
-
Tried the new 4.19 client and it works great with the 4.11 server with no issues whatever, so I'm leaving that installed on the client.
Tried the new 4.19 server and I have the same issues as before - eventually I get the 'out of memory' error on the command line, and '0 files' with the WPS. SMBCLIENT will also time out on the \software\os2 directory without the -t 60 directive. All this with the default inetcfg.ini just like yours on server and client, so that isn't the culprit.
The fact it works for you and not me implies my configuration is somehow different. Need to figure out what - what NICs are you using on the server and client? My server has an Intel NIC, and client has a Realtek.
I'm interested in any ideas what might influence SAMBA in the OS/2 system that could be changed in the normal course of usage...
I wish i had more ideas on the cause of this. Do you have access to smbclient on a linux machine? Curious if it shows the same behaviour or if it's something OS/2 specific on your client.
My server has an Intel Pro 1000 using the Multimac32-E1000B driver. I think the Virtualbox client is also using the Intel Pro 1000 driver.
Were you able to confirm the fixed smbd.exe from this morning fixes the issues with stray files left in %etc%\samba\lock\msg.lock?
-
eventually I get the 'out of memory' error on the command line, and '0 files' with the WPS.
When this happens, what do tools like the Xcenter sentinel memory watcher say about the state of the system? Is low/high memory actually exhausted? (Edit: found an earlier message where you confirmed the system doesn't actually appear to be out of ram.
Let's try the following:
- reinstate \ndpsmb.dbg
- edit smb.conf and increase loglevel to 8 (on the client PC)
- restart ndctl.exe
- recreate the error, note the system timestamp when the error occurs
- zip log.ndpsmb & log.smbc & attach to https://mantis.smedley.id.au/view.php?id=769
- revert loglevel to save your system filling up :)
-
Hi Paul,
I uploaded the logs you requested to your Mantis. Can also confirm the \lock\msg.lock directory is cleared when the server is shutdown - thanks for that!
One thing I think I already mentioned is that I can use the 4.19 server from Windows without losing the connection (so far). I am going to set up a Virtual Box on my Windows machine, install ArcaOS to it and see how it works from there (since that is how you are doing it). Can you try connecting from a bare metal OS/2 install to your server? Wondering if the forwarding by Windows (or Linux as the case may be) is somehow masking the issue...
Regards,
-
Hey Dave, thanks for the logs, I'll review later today. I'll also see if I can test on my other bare metal box.
-
Paul,
I'm seeing some 'Broken Extended Attributes detected for:' messages in some of the server logs for some directories and files. Is that a problem? Is there a way to repair EA's (if they really are broken)?
Regards,
-
Can you send me a sample file (offline) for analysis?
-
Is there a way to repair EA's (if they really are broken)?
Checkout https://88watts.net/download/eaclean-1.3.zip (https://88watts.net/download/eaclean-1.3.zip). From the blurb,
Displays and cleans EA litter from files. -c or -c1 = clean ea litter only Removes unnecessary UID, GID, MODE, INO, RDEV, GEN, FLAGS EAs. -c2 = same as -c1 plus remove unnecessary .LONGNAME EAs and MR.ED.TXTPOS. -c3 = same as -c2 plus remove .LONGNAME EAs that do not match the file name. Use -c3 with caution and do not use -c3 on boot volumes.
Eaclean displays the name of the file if any EAs were removed. It will display Removed all EAs from filename if it ended up removing all the EAs, or Removed some EAs from filename if only some of the EAs were removed. Eaclean currently cannot process files that are open or locked.
-
Dave,
Tried eaclean on the shared drive, but it crashes:
[D:\]eaclean -c2 -s *
SYS1808:
The process has stopped. The software diagnostic
code (exception code) is 0005.
It works on my desktop though, so this is not a good sign. The shared drive is an old-fashioned rotating drive. I have a 2TB NVMe drive on my desk I'm going to replace the old drive with. Gotta copy all the data first. Of course, this doesn't explain why 4.11 works and 4.19 has trouble...
Regards,
-
Paul,
Do you want a log or an actual 'broken EA' file?
Regards,
-
Do you want a log or an actual 'broken EA' file?
Ideally, both
-
OK, I replaced the old rotating 2TB drive with a brand new 2TB PCIe 4x4 NVMe drive (plugged into a PCIe 4 slot). Went to my backup drive and ran 'eaclean -c2 -s *' on it. It removed a good many EA's. Copied the cleaned data on the backup drive onto the new drive via ndpsmb 4.19 to the new drive on the SAMBA 4.11 server. EA support was off on the client, server was default (which I believe is to support EA's). Used 'xcopy D: N: /H /O /T /S /E /R /V' and everything got copied back over via SAMBA in about 30 minutes.
Then on the server I ran 'eaclean -c2 -s *' on the copied data on the shared drive and it removed A LOT of EA's! I didn't think EA's would be copied (because support was off on the client), and even so, I had already cleaned all the files before copying. Maybe I misunderstand what 'EA support' does. Can anyone explain?
Anyway, the real punch line is that now it works with the 4.19 server. SMBCLIENT does not time out, it works. I don't know if it is because the new drive is so much faster, or because 'broken EA's' are gone. Still early, but so far I have not got an out of memory condition, and it is very much faster to display files in the WPS.
Has EA support been changed since 4.11? Maybe something there is slowing things down - like checking EA's - in 4.19 it didn't do in 4.11?
Regards,
-
Hi David, any libc program will add a bunch of EA's, namely UID, GID, MODE, INO, RDEV, GEN, FLAGS EAs.
So Samba, being built with GCC and Libc will add all those EA's.
-
Hey Dave,
Do you know if there is a way to turn that off?
Regards,
-
Hey Dave,
Do you know if there is a way to turn that off?
Regards,
No, besides using a file system that doesn't support EA's. It's why David A. wrote that program I posted up thread.
-
Hey Dave,
Do you know if there is a way to turn that off?
PMFJI... SET LIBC_UNIX_EAS=[drive letters to include or !exclude]
For example, I disable them on all drives except my boot drive (N:) using:
SET LIBC_UNIX_EAS=!C-M,N,!O-Z
You can use individual letters or create ranges; use '!' to negate a letter or range.
Note 1: these EAs must be allowed on your boot drive (or maybe it's just your %UNIXROOT% drive) or "bad things will happen".
Note 2; for many of us, the biggest source of these annoyances (IMHO) is Info-Zip. I use an older version which doesn't create them.
-
Rich,
Thanks for that! I'll try using it on my shared drive. Hopefully SAMBA won't object...but we'll see.
Regards,
-
Arggh! Just got the 'out of memory' error again! Rats - thought it was defeated, but apparently not. SMBCLIENT still works without timing out though, so apparently that was unrelated.
Regards,
-
Thanks rich, didn't know about SET LIBC_UNIX_EAS= wonder if it also affects the symlink EA's? If so, that probably causes the bad things to happen if @unixroot doesn't have them. BWW seems to like using them, I try to avoid them as they're fragile being EA's
-
Yes, breaks symbolic links, don't use on @unixroot
[H:\tmp]SET LIBC_UNIX_EAS=!H
[H:\tmp]ln -s test.txt t.txt
ln: failed to create symbolic link 't.txt': Operation not supported on socket
Edit: ls -la also no longer see symbolic links,
lrwxrwxrwx 1 root root 8 Jan 15 16:13 t.txt -> test.txt
...
-rw-rw-rw- 1 root root 8 Jan 15 16:13 t.txt
-
Thanks rich, didn't know about SET LIBC_UNIX_EAS= wonder if it also affects the symlink EA's? If so, that probably causes the bad things to happen if @unixroot doesn't have them. BWW seems to like using them, I try to avoid them as they're fragile being EA's
FYI: This was needed to be documented. I added it to the EDM/2 Config.sys Project:
- http://www.edm2.com/index.php/CONFIG.SYS_-_SET_Statements_(Additional_software)#SET_LIBC_UNIX_EAS
I also found this ticket for reference:
- https://trac.netlabs.org/libc/ticket/43
Regards
-
Hey Dave,
Anyway, the real punch line is that now it works with the 4.19 server. SMBCLIENT does not time out, it works. I don't know if it is because the new drive is so much faster, or because 'broken EA's' are gone. Still early, but so far I have not got an out of memory condition, and it is very much faster to display files in the WPS.
Has EA support been changed since 4.11? Maybe something there is slowing things down - like checking EA's - in 4.19 it didn't do in 4.11?
Interesting! The OS/2 specific EA code should be unchanged from 4.11 but it's also possible that the diffs didn't apply cleanly and it went unnoticed. Gives me a few things to look at when I have a free moment.
-
Arggh! Just got the 'out of memory' error again! Rats - thought it was defeated, but apparently not. SMBCLIENT still works without timing out though, so apparently that was unrelated.
Drat!
-
Isn't it enough to disable EAs for Samba shares? Or what is the option in smb.conf good for? I've it in the global section. I ever thought it is for the server, right?.
AFAIR the netdrive smbfs dialog has an option to enable/disable EAs too.
-
Hey Dave,
Anyway, the real punch line is that now it works with the 4.19 server. SMBCLIENT does not time out, it works. I don't know if it is because the new drive is so much faster, or because 'broken EA's' are gone. Still early, but so far I have not got an out of memory condition, and it is very much faster to display files in the WPS.
Has EA support been changed since 4.11? Maybe something there is slowing things down - like checking EA's - in 4.19 it didn't do in 4.11?
Interesting! The OS/2 specific EA code should be unchanged from 4.11 but it's also possible that the diffs didn't apply cleanly and it went unnoticed. Gives me a few things to look at when I have a free moment.
The heavy lifting for EA handling on Samba 4.x is from libattr. I created https://github.com/psmedley/attr-os2 with a copy of the source today. See https://github.com/psmedley/attr-os2
For reasons I don't remember - there are two copies of the 'helper' apps. I think one is from rsync, the other is from Samba 3.x.
-
Isn't it enough to disable EAs for Samba shares? Or what is the option in smb.conf good for? I've it in the global section. I ever thought it is for the server, right?.
AFAIR the netdrive smbfs dialog has an option to enable/disable EAs too.
The smb.conf flag will definitely work to disable EA's on the server. With Samba 4.x, it's possible the client no longer respects the flag in the GUI....
-
@Dave - an observation locally...
4.11 Server - EA's visible to client
4.18/4.19 Server - EA's not visible to client.
Same server smb.conf in use. Do you see the same thing? I wonder if this is part of the issue with the client.
Client *can* see EA's on a server running 4.18.x under Ubuntu.
Interesting:
[2024/01/19 18:12:12.072000, 3] ../../source3/smbd/smb2_server.c:4033(smbd_smb2_request_error_ex)
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_NO_EAS_ON_FILE] || at ../../source3/smbd/smb2_getinfo.c:159
-
Paul,
How do I view EA's? Is that something that can be done directly, or are you looking in a log file?
I see stuff like this in an smbd log on the server:
os2getxattr : (Software/Windows/DRIVERS:0) user.DOSATTRIB 32
os2getxattr : (Software/Windows/DRIVERS:0) user.DOSATTRIB 32
os2getxattr : (Software/Windows/DRIVERS:0) user.DOSATTRIB 32
os2getxattr : (SOFTWARE:0) user.DOSATTRIB 32
os2getxattr : (SOFTWARE:0) user.DOSATTRIB 32
os2getxattr : (SOFTWARE:0) user.DOSATTRIB 32
os2getxattr : (SOFTWARE/WINDOWS:0) user.DOSATTRIB 32
os2getxattr : (SOFTWARE/WINDOWS:0) user.DOSATTRIB 32
os2getxattr : (SOFTWARE/WINDOWS:0) user.DOSATTRIB 32
os2getxattr : (SOFTWARE/WINDOWS/DRIVERS:0) user.DOSATTRIB 32
os2getxattr : (SOFTWARE/WINDOWS/DRIVERS:0) user.DOSATTRIB 32
os2getxattr : (SOFTWARE/WINDOWS/DRIVERS:0) user.DOSATTRIB 32
This is with EA's disabled on both client and server, and using Rich's SET LIBC_UNIX_EAS=C,!D to turn off EA's on the shared drive.
Regards,
-
Paul,
Interesting:
[2024/01/19 18:12:12.072000, 3] ../../source3/smbd/smb2_server.c:4033(smbd_smb2_request_error_ex)
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_NO_EAS_ON_FILE] || at ../../source3/smbd/smb2_getinfo.c:159
I'm not seeing that error on either the client (4.19) or server (neither 4.11 nor 4.19). Using log level = 8 on both. All I see on the client side (both 4.11 and 4.19 server) is many dozens of:
[2024/01/19 11:32:59.648000, 3] ../../source3/libsmb/clierror.c:91(cli_status_to_errno)
cli_status_to_errno: 0xc0000034 -> 2
On the server side, the logged errors I see are:
[2024/01/19 10:01:17.493000, 2] ../../source3/nmbd/nmbd_winsserver.c:634(initialise_wins)
initialise_wins: Can't open wins database file wins.dat. Error was No such file or directory**
[2024/01/19 10:01:40.006000, 5] ../../source3/nmbd/nmbd_namequery.c:77(query_name_response)
query_name_response: On subnet UNICAST_SUBNET - negative response from IP 192.168.21.2 for name IBMPEERS<1b>. Error code was 3.**
[2024/01/19 10:19:00.702000, 0] ../../lib/util/pidfile.c:240(pidfile_unlink)
Failed to delete pidfile C:\MPTN\ETC/samba/pid/nmbd.pid. Error was No such file or directory.**
[2024/01/19 10:18:30.430000, 3] ../../source3/smbd/smb2_server.c:4033(smbd_smb2_request_error_ex)
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_NO_MEMORY] || at ../../source3/smbd/smb2_create.c:360
[2024/01/19 10:18:30.622000, 5] ../../source3/smbd/dosmode.c:418(fget_ea_dos_attribute)
fget_ea_dos_attribute: Cannot get attribute from EA on file .: Error = Attribute not found
[2024/01/19 10:18:32.229000, 3] ../../source3/smbd/smb2_server.c:4033(smbd_smb2_request_error_ex)
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_OBJECT_PATH_NOT_FOUND] || at ../../source3/smbd/smb2_create.c:360
There were many multiples of each of the above - only one shown.
** Indicate errors seen with both the 4.11 and 4.19 server. The last three are only seen with the 4.19 server.
One thing I have noticed - I have 'max log size = 2048' in the server smb.conf, but it seems to be ignored because I get logs over 10MB all the time, especially with log level = 8. Maybe a bug?
Thinking out loud:
wins.dat does exist in the C:\MPTN\ETC\samba\lock directory - maybe the server is looking in the wrong place?
nmbd.pid is deleted when the server is stopped - maybe that error comes after it has been deleted?
The 'attribute not found' might be because I have EA's turned off with SET LIBC_UNIX_EAS= on the shared drive?
The name of the computer at 192.168.21.2 is MAINMACHINE. IBMPEERS is the workgroup. Maybe some kind of confusion?
Regards,
-
How do I view EA's? Is that something that can be done directly, or are you looking in a log file?
I'm just using dir from the command line, noticed (by chance) that some files that I knew had EA's were showing as 0 size.
I'll try investigate this weekend. Heading out for lunch with my Dad today, and will probably end up consuming too much red wine, so more likely a Sunday job :)
-
Created:
https://mantis.smedley.id.au/view.php?id=780
https://mantis.smedley.id.au/view.php?id=781
For the issues in log files, and the log rotation issue.
Log rotation is a PITA on OS/2 as on Unix you can rename an open file - on OS/2 we have to close the file, rename it, and open a new one.
-
Hey Paul,
@Dave - an observation locally...
4.11 Server - EA's visible to client
4.18/4.19 Server - EA's not visible to client.
Same server smb.conf in use. Do you see the same thing? I wonder if this is part of the issue with the client.
Client *can* see EA's on a server running 4.18.x under Ubuntu.
I tested this by copying a file (MP3) with EA's to the shared drive, then viewing on the command line. With server 4.19, as long as 'ea support = Yes' was in smb.conf on the server, I could see the EA's on the share. If set to 'No', then all EA's show '0'. EA support must be 'on' on the client to see EA's......
EDIT: But... It doesn't show the same value on the client that it shows directly on the server! There are many files with a small number of EA's (as seen on the server) that show '0' on the client, and the file I copied shows a larger EA number on the server than shows on the client. Strange...
EDIT2: But2... If I use server 4.11, I can see EA's larger than 0 on the client, but still smaller than what I see directly on the server. So it seems SAMBA does not display the total number of EA's (on the client) in either version 4.11 or 4.19, but shows more in 4.11.
Regards,
-
EA fix is in https://smedley.id.au/tmp/smbd-4.19.4-20240121.zip - turned out to be a missing patch from 4.11 - the source file changed name (trans.c -> smb2_trans.c) and I missed the fact the patch was still required. Patch at https://github.com/psmedley/samba-os2/commit/677cfedea18c1acd2096a4e8d71167831290c768
@Dave it will be interesting to see if this helps with the out of memory - part of the server was seeing that EA's were present, then other parts of the code weren't finding those EA's - which could (in theory) lead to strange behaviour.
-
Thanks Paul,
Unfortunately, I still eventually get the 'out of memory' error with this one. When I have both server and client set to allow EA's, I see a larger number for EA's with this one than the last one, but still smaller than what is on the server (and not quite the same value (slightly smaller) as with 4.11, but close).
For example - the MP3 file I mentioned I copied from client to server earlier shows 488 for EA's on my client local drive, but shows 814 directly on the server after copying. With server 4.11, on the client share drive it shows 771 for EA's on that file, and with this latest 4.19 it shows 764 for EA's.
Another twist I just noticed - if I have the client set to not use EA's, I can play the MP3 file from the share by double clicking it, and the WPS plays it. If I have the client set to support EA's, when I double click it, it opens PM123 and plays it. This happens with both the 4.11 and 4.19 servers. Not clear why...
Regards,
-
It would be interesting to see the difference in the EA's between the server and the client...
attr.exe -l filename
-
Paul,
Attached are:
local.txt - mp3 file on local drive on client
share.txt - same mp3 file after copied to share from client
server.txt - copied mp3 on local drive on server
All using 4.19 with EA support on both client and server.
Regards,
-
Thanks - this was useful - I see another patch that is required to avoid the "user." being pre-pended to existing EA's. https://smedley.id.au/tmp/smbd-4.19.4-20240122.zip will be available shortly
-
Thanks Paul - now the EA's shown on the client match those on the server. Still get an 'out of memory' eventually...
Do you think Theseus might help in identifying what is running out of memory?
Regards,
-
Do you think Theseus might help in identifying what is running out of memory?
I'm not actually convinced that it's an out of memory condition. There is a Samba error, that is converted to ENOMEM. I just wish I could easily duplicate the error.
What I really need, is a matching set of:
server smbd log with debug level 8
client logs - log.ndpsmb and log.smbc
with notes as to when the error started occuring (date/time)
I tried to reproduce over the weekend but couldn't easily trigger the error :(
-
Paul,
OK, I attached 2 zip files - one with server logs and one with client logs with loglevel=8. I started the server and client at 16:28 and got the OOM condition at 16:31. It's a bummer and surprising you can't easily get it...
Regards,
-
Thanks Dave, will review this evening. Much easier to fix if I could easily reproduce :(
-
OK, I attached 2 zip files - one with server logs and one with client logs with loglevel=8. I started the server and client at 16:28 and got the OOM condition at 16:31. It's a bummer and surprising you can't easily get it...
Unfortunately, I don't think there is enough of the server log there, due to the log being truncated at 2mb. The first entry in the server log is already 16:31...
There are some interesting entries like:
[2024/01/22 16:31:11.616000, 5] ../../source3/smbd/files.c:1985(file_free)
file_free: freed files structure 0 (1 used)
[2024/01/22 16:31:11.616000, 5] ../../source3/smbd/files.c:77(fsp_new)
fsp_new: allocated files structure (2 used)
[2024/01/22 16:31:11.616000, 5] ../../source3/smbd/files.c:179(file_new)
file_new: new file fnum [invalid value]
[2024/01/22 16:31:11.616000, 5] ../../source3/smbd/files.c:321(openat_internal_dir_from_pathref)
openat_internal_dir_from_pathref: fd_openat(".", ".") failed: NT_STATUS_NO_MEMORY
[2024/01/22 16:31:11.616000, 5] ../../source3/smbd/files.c:1985(file_free)
file_free: freed files structure 0 (1 used)
[2024/01/22 16:31:11.616000, 3] ../../source3/smbd/filename.c:319(get_real_filename_full_scan_at)
get_real_filename_full_scan_at: scan dir didn't open dir [.]: NT_STATUS_NO_MEMORY
[2024/01/22 16:31:11.616000, 5] ../../source3/smbd/files.c:1985(file_free)
file_free: freed files structure 0 (0 used)
[2024/01/22 16:31:11.616000, 3] ../../source3/smbd/smb2_server.c:4033(smbd_smb2_request_error_ex)
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_NO_MEMORY] || at ../../source3/smbd/smb2_create.c:360
So - I'm going to take a look at my fd_openat implementation - but I'm not sure if this is the original trigger of the issue, or a side effect...
edit: fd_openat is from samba (https://github.com/psmedley/samba-os2/blob/samba-os2-4.19.x/source3/smbd/open.c#L900), but ends up calling openat() (I think, via https://github.com/psmedley/samba-os2/blob/samba-os2-4.19.x/source3/modules/vfs_default.c#L653)
-
Paul,
I should have known about the truncation - sorry about that. Did it again with max log set to 500000 - started at 9:35 and got the OOM at 9:38. I can pretty consistently get it in about 3 minutes now. Attached.
Regards,
-
Paul,
Thanks - this was useful - I see another patch that is required to avoid the "user." being pre-pended to existing EA's. https://smedley.id.au/tmp/smbd-4.19.4-20240122.zip will be available shortly
Didn't notice this before (just saw that the EA's were the same on client and server), but USER is still being pre-pended in the EA's. I'll attach examples...
Regards,
-
I should have known about the truncation - sorry about that. Did it again with max log set to 500000 - started at 9:35 and got the OOM at 9:38. I can pretty consistently get it in about 3 minutes now. Attached.
Nice. I'd love to know what steps you follow to reproduce it in 3min - might help me reproduce.
Anyway, turns out maybe your previous log was sufficient - the first out of memory error looks to be:
[2024/01/23 09:38:27.270000, 5] ../../source3/smbd/files.c:1985(file_free)
file_free: freed files structure 0 (1 used)
[2024/01/23 09:38:27.270000, 5] ../../source3/smbd/files.c:77(fsp_new)
fsp_new: allocated files structure (2 used)
[2024/01/23 09:38:27.270000, 5] ../../source3/smbd/files.c:179(file_new)
file_new: new file fnum [invalid value]
[2024/01/23 09:38:27.270000, 5] ../../source3/smbd/files.c:321(openat_internal_dir_from_pathref)
openat_internal_dir_from_pathref: fd_openat(".", ".") failed: NT_STATUS_NO_MEMORY
[2024/01/23 09:38:27.270000, 5] ../../source3/smbd/files.c:1985(file_free)
file_free: freed files structure 0 (1 used)
[2024/01/23 09:38:27.270000, 3] ../../source3/smbd/filename.c:319(get_real_filename_full_scan_at)
get_real_filename_full_scan_at: scan dir didn't open dir [.]: NT_STATUS_NO_MEMORY
[2024/01/23 09:38:27.270000, 5] ../../source3/smbd/files.c:1985(file_free)
file_free: freed files structure 0 (0 used)
[2024/01/23 09:38:27.270000, 3] ../../source3/smbd/smb2_server.c:4033(smbd_smb2_request_error_ex)
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_NO_MEMORY] || at ../../source3/smbd/smb2_create.c:360
file_new: new file fnum [invalid value] seems to be a furthy as there are multiple instance of it with no error.
Need to do some thinking....
-
Paul,
I usually use the WPS (XView of drive N:) and browse to \Software\OS2 which has ~2500 files, open a few files, play part of an MP3, scroll down, then drag the scroll bar to the bottom and scroll up, maybe browse a couple sub-directories. Then browse to another directory \Music, which has 130 directories and start browsing them and very quickly there I get the 'no files' in a directory I know has them. Switching to command line, I see the OOM when I try to 'dir' on drive N:
I think now if I just browse the \Music directory, it would happen faster...
Regards,
-
Here's a corresponding log from the client:
2024/01/23 09:38:27.27: 9 2: NdpQueryPathInfo in [0x342160] <Music\Pearl Jam\A.+,;=[].B>
2024/01/23 09:38:27.27: 9 2: dircache_find_path [Music\Pearl Jam\A.+,;=[].B]
2024/01/23 09:38:27.27: 9 2: dcFindPath: [Music\Pearl Jam][A.+,;=[].B]
2024/01/23 09:38:27.27: 9 2: dircache: FindPath Music\Pearl Jam\A.+,;=[].B not found
2024/01/23 09:38:27.27: 9 2: NdpQueryPathInfo pathparser for <\A.+,;=[].B> rc=0
2024/01/23 09:38:27.27: 9 2: NdpQueryPathInfo smbwrp_getattr for <\A.+,;=[].B>
2024/01/23 09:38:27.27: 4 2: getattr 0 16 <\A.+,;=[].B>
2024/01/23 09:38:27.27: 4 2: smbwrp_getattr, calling cli_qpathinfo3
2024/01/23 09:38:27.28: 9 2: NdpQueryPathInfo smbwrp_getattr, rc = 2
2024/01/23 09:38:27.28: 9 2: NdpQueryPathInfo <Music\Pearl Jam\A.+,;=[].B> (\A.+,;=[].B) 2
2024/01/23 09:38:27.28: 9 3: NdpQueryPathInfo in [0x317ac0] <Music\Pearl Jam\A.+,;=[].B>
2024/01/23 09:38:27.28: 9 3: dircache_find_path [Music\Pearl Jam\A.+,;=[].B]
2024/01/23 09:38:27.28: 9 3: dcFindPath: [Music\Pearl Jam][A.+,;=[].B]
2024/01/23 09:38:27.28: 9 3: dircache: FindPath Music\Pearl Jam\A.+,;=[].B not found
2024/01/23 09:38:27.28: 9 3: NdpQueryPathInfo pathparser for <\A.+,;=[].B> rc=0
2024/01/23 09:38:27.28: 9 3: NdpQueryPathInfo smbwrp_getattr for <\A.+,;=[].B>
2024/01/23 09:38:27.28: 4 3: getattr 0 16 <\A.+,;=[].B>
2024/01/23 09:38:27.28: 4 3: smbwrp_getattr, calling cli_qpathinfo3
2024/01/23 09:38:27.28: 9 3: NdpQueryPathInfo smbwrp_getattr, rc = 8
2024/01/23 09:38:27.28: 9 3: NdpQueryPathInfo <Music\Pearl Jam\A.+,;=[].B> (\A.+,;=[].B) 3
The WPS seems to try and open 'A.+,;=[].B' in each folder and somehow this triggers an OOM error in the server. Interesting....
-
Does https://smedley.id.au/tmp/ndpsmb-20240125.zip help? If it doesn't, can I have a new log.ndpsmb please?
-
Paul,
No help - log attached, OOM toward the end of 6:16. I never noticed that 'A.+,;=[].B' before, but the log is riddled with it - must be a code error somewhere...
EDIT: tried running the 4.11 server with the 4.19 client (where I do not get the OOM) and I see those 'A.+,;=[].B' in the log all over the place there too.
Regards,
-
must be a code error somewhere...
AFAIR, it's the WPS checking for long file name support. If that file operation produces a specific error, a FAT-like file system is assumed. The WPS will then shorten file names and store the originals in EAs.
-
must be a code error somewhere...
AFAIR, it's the WPS checking for long file name support. If that file operation produces a specific error, a FAT-like file system is assumed. The WPS will then shorten file names and store the originals in EAs.
Yeah it's definitely a WPS thing....
-
Paul,
No help - log attached, OOM toward the end of 6:16. I never noticed that 'A.+,;=[].B' before, but the log is riddled with it - must be a code error somewhere...
EDIT: tried running the 4.11 server with the 4.19 client (where I do not get the OOM) and I see those 'A.+,;=[].B' in the log all over the place there too.
Regards,
I think this is still the old plugin. The first line reports: Samba client 4.19-1 build 202401xx based on 4.19.4
I changed the build date for this one to 20240125
It's still showing:
2024/01/25 06:16:45.02: 9 2: NdpQueryPathInfo smbwrp_getattr for <\A.+,;=[].B>
2024/01/25 06:16:45.02: 4 2: getattr 0 16 <\A.+,;=[].B>
2024/01/25 06:16:45.02: 4 2: smbwrp_getattr, calling cli_qpathinfo3
2024/01/25 06:16:45.02: 9 2: NdpQueryPathInfo smbwrp_getattr, rc = 8
Whereas I would expect to see:
2024/01/25 17:49:56.99: 9 2: NdpQueryPathInfo in [0x4928e0] <A.+,;=[].B>
2024/01/25 17:49:56.99: 9 2: NdpQueryPathInfo in [0x4928e0] <A.+,;=[].B> - return ERROR_FILE_NOT_FOUND
Let me also double check that I zipped the right file....
bldlevel on ndpsmb.dll should show:
Description: NDPSMB - SMBFS NetDrive External Plugin Build 20240125
-
Paul,
That's what I see here:
[C:\programs\ndfs\ndplugs]bldlevel ndpsmb.dll
Build Level Display Facility Version 6.12.675 Sep 25 2001
(C) Copyright IBM Corporation 1993-2001
Signature: @#netlabs:4.19-1#@##1## 25 Jan 2024 17:51:14 ARCAOS-803C::e
n::::@@NDPSMB - SMBFS NetDrive External Plugin Build 20240125
Vendor: netlabs
Revision: 4.19
Date/Time: 25 Jan 2024 17:51:14
Build Machine: ARCAOS-803C
Language Code: en
File Version: 4.19
Description: NDPSMB - SMBFS NetDrive External Plugin Build 20240125
EDIT: Just tried it again, and the header is the same: shows 4.19-1 build 202401xx based on 4.19.4. There is no other ndpsmb.dll on my system.
Regards,
-
I just did a fresh build - https://smedley.id.au/tmp/ndpsmb-20240126.zip
-
OK, thanks Paul - this one has the correct header.
Still get the OOM in about 3 minutes though - new log attached. OOM early in 18:31.
Regards,
-
ok, https://smedley.id.au/tmp/ndpsmb-20240126b.zip should get rid of the remaining cases like:
2024/01/25 18:28:32.09: 9 2: NdpQueryPathInfo in [0x317ac0] <Great Defrost 2012, LW pics\A.+,;=[].B>
2024/01/25 18:28:32.09: 9 2: dircache_find_path [Great Defrost 2012, LW pics\A.+,;=[].B]
2024/01/25 18:28:32.09: 9 2: dcFindPath: [Great Defrost 2012, LW pics][A.+,;=[].B]
2024/01/25 18:28:32.09: 9 2: dircache: FindPath Great Defrost 2012, LW pics\A.+,;=[].B not found
2024/01/25 18:28:32.09: 9 2: NdpQueryPathInfo pathparser for <\A.+,;=[].B> rc=0
2024/01/25 18:28:32.09: 9 2: NdpQueryPathInfo smbwrp_getattr for <\A.+,;=[].B>
I don't think this is going to fix things, but it makes the code more efficient by not calling smbwrp_getattr() on every folder to check file attributes for A.+,;=[].B which are never going to exist.
-
Paul!
I ran this one for 20 minutes and couldn't get the OOM. Still see the 'A.+,;=[].B' on some lines in the log though, but this is very promising!
Regards,
-
Wow! That is promising. I'll clean up the changes and commit them anyway - even if they don't 100% fix your issue, they still reduce unnecessary traffic between the client and server which is a good thing.
-
https://smedley.id.au/tmp/ndpsmb-20240127.zip should be functionally identical to 20240126b but has some cleanups to the code.
-
Thanks Paul!
This one does seem to work well - no OOM yet. The last one I never got an OOM either, so you may have squashed that bug. I'll attach logs for the new one. By far the most common line in it is:
2024/01/27 07:50:34.55: 9 2: NdpQueryPathInfo in [0x317ac0] <A.+,;=[].B>
so still see the A.+,;=[].B.
On a different subject - on directories with windows exe files, the WPS blocks while apparently it tries to determine the icons for the files. If the files are large it can take a very long time (minutes - like it reads the whole file) to display and free the WPS. I have 'SET NOLARGENTEXEICON=1' in CONFIG.SYS, but apparently SAMBA doesn't honor that? Have you seen this?
Regards,
-
David,
...On a different subject - on directories with windows exe files, the WPS blocks while apparently it tries to determine the icons for the files. If the files are large it can take a very long time (minutes - like it reads the whole file) to display and free the WPS...
That has always been the bahaviour I've seen on my end.
In particular, I have my general software library on the NAS, which easily serves all the individual PC installs, but that is a set of directories I generally stay away from viewing on my OS/2 machine for the very reason you mentioned.
It's like the whole EXE has to be read in order for ANY info to actually show.
-
Hi Dave,
Thanks Paul!
This one does seem to work well - no OOM yet. The last one I never got an OOM either, so you may have squashed that bug. I'll attach logs for the new one. By far the most common line in it is:
2024/01/27 07:50:34.55: 9 2: NdpQueryPathInfo in [0x317ac0] <A.+,;=[].B>
so still see the A.+,;=[].B.
On a different subject - on directories with windows exe files, the WPS blocks while apparently it tries to determine the icons for the files. If the files are large it can take a very long time (minutes - like it reads the whole file) to display and free the WPS. I have 'SET NOLARGENTEXEICON=1' in CONFIG.SYS, but apparently SAMBA doesn't honor that? Have you seen this?
The log line:
2024/01/27 07:50:34.55: 9 2: NdpQueryPathInfo in [0x317ac0] <A.+,;=[].B>
Is expected. What has changed in the plugin is the code at https://github.com/psmedley/ndpsmb/blob/samba-4.19.x/src/ndpsmb.c#L1008 where if the WPS is testing A.+,;=[].B, we return immediately rather than calling smbwrp_getattr()
If I can find a windows exe file, I'll see what the client logs are saying. I have no idea what the NOLARGENTEXEICON setting does and there is definitely no code in Samba that would handle it.
-
It's like the whole EXE has to be read in order for ANY info to actually show.
Interesting.... a set of client logs showing this would be interesting - it may be possible to fix in the plugin.
-
What has changed in the plugin is the code at https://github.com/psmedley/ndpsmb/blob/samba-4.19.x/src/ndpsmb.c#L1008 where if the WPS is testing A.+,;=[].B, we return immediately rather than calling smbwrp_getattr()
While this certainly is a performance benefit, I think this approach just 'cures' a symptom but does not address it's root cause. Obviously, smbwrp_getattr() has a memory leak. Just checking for a specific name doesn't prevent the same problem resurfacing in other situations.
-
@Paul
I have no idea what the NOLARGENTEXEICON setting does and there is definitely no code in Samba that would handle it
From REXX T&T:
SET NOLARGENTEXEICON=n
Limit the number of megabytes (=n) the WPS should scan through Windows EXE files for the program icon before assigning a default icon
Available: New kernels from testcase (APAR PJ27886)
Source: XWorkplace Mailinglist
-
What has changed in the plugin is the code at https://github.com/psmedley/ndpsmb/blob/samba-4.19.x/src/ndpsmb.c#L1008 where if the WPS is testing A.+,;=[].B, we return immediately rather than calling smbwrp_getattr()
While this certainly is a performance benefit, I think this approach just 'cures' a symptom but does not address it's root cause. Obviously, smbwrp_getattr() has a memory leak. Just checking for a specific name doesn't prevent the same problem resurfacing in other situations.
I look forward to seeing your fix for the memory leak in smbwrp_getattr(). Afaict the code is basically identical to what's in Samba. I've spent hours staring at the code looking for what might be causing a leak. also note that neither client or server are demonstrating an out of memory condition - the error comes from the *mapping* of a Samba error to Unix style error codes on the *server* which manifests on the client.
-
@Paul
I have no idea what the NOLARGENTEXEICON setting does and there is definitely no code in Samba that would handle it
From REXX T&T:
SET NOLARGENTEXEICON=n
Limit the number of megabytes (=n) the WPS should scan through Windows EXE files for the program icon before assigning a default icon
Available: New kernels from testcase (APAR PJ27886)
Source: XWorkplace Mailinglist
Thanks - I've downloaded https://github.com/open-watcom/open-watcom-1.9/releases/download/ow1.9/open-watcom-c-win32-1.9.exe and will see if I can reproduce this.
Edit: I can reproduce this - however - I don't think the plugin is doing anything wrong. I set SET NOLARGENTEXEICON on a client - but the NdpFileRead calls are identical. Maybe it's a bug in Netdrive? I suspect the same issue would be seen with other Netdrive plugins, but I don't have any installed to be able to test.
-
Hey Paul,
I think you are probably correct about NDFS - my SAMBA server also has an FTP server, so tried the FTP plugin for NDFS and saw the exact same behavior on the same Windows files directory as with the SAMBA plugin. I also copied that directory to my client and tried browsing it locally and don't see the lag for icon display. So it seems NDFS could use a tune-up.
Regards,
-
Hey Dave,
Any change with WPS with https://smedley.id.au/tmp/ndpsmb-20240131.zip ? Chatting with Steven - it seems NO_ERROR might be a better return code at https://github.com/psmedley/ndpsmb/blob/samba-4.19.x/src/ndpsmb.c#L1011
That's the only change from the last build (not committed yet).
Cheers,
Paul
-
Paul,
No obvious difference performance-wise, but I no longer see these lines in the client log:
[2024/01/19 11:32:59.648000, 3] ../../source3/libsmb/clierror.c:91(cli_status_to_errno)
cli_status_to_errno: 0xc0000034 -> 2
I'll update your Mantis on this point...
Regards,
-
I rebuilt Samba 4.19.4 to ensure the latest fixes to smbd are also reflected in any other executables that share common libraries.
Latest Server is https://smedley.id.au/tmp/samba-4.19.4-os2-20240202.zip
Latest Netdrive Plugin: https://smedley.id.au/tmp/ndpsmb-20240131.zip
Latest smbcl419.dll: https://smedley.id.au/tmp/smbcl419-4.19.4-20240202.zip
I also updated the 1st post to include these links to make them easier to find.
-
I didn't detect any regressions on the server side. The latest build of smbd, samba-4.19.4-os2-20240202.zip, shares files here, just like the previous build. Network browsing is still not working, same as before.
-
Paul,
Latest Netdrive Plugin: https://smedley.id.au/tmp/ndpsmb-20240131.zip
Latest smbcl419.dll: https://smedley.id.au/tmp/smbcl419-4.19.4-20240202.zip
I seem to be having an awful time with these.
Pulled the NetDrive and client ZIPs, deployed and re-booted.
TRAP-D on bootup, and this is even after I scaled back my massive 1G JFS cache, etc, etc.
Not sure what else to tell ya here, appreciate the work you do though.
-
I didn't detect any regressions on the server side. The latest build of smbd, samba-4.19.4-os2-20240202.zip, shares files here, just like the previous build. Network browsing is still not working, same as before.
Thanks Neil - I need to test arcamapper against my Samba server running on Ubuntu - to see if the issue is specific to the OS/2 port, or if it's a change in Samba Server behaviour.
-
Paul,
I'm having trouble with this one - get a trap in WINBINDD.EXE at start. Logs attached. Went back to previous and all is well...
Regards,
-
I'm having trouble with this one - get a trap in WINBINDD.EXE at start. Logs attached. Went back to previous and all is well...
Interesting. There were no *intentional* changes for winbindd - I'll have to figure out how to use it. You backlevelled just winbindd.exe?
Edit: I can reproduce this... investigating now.
Edit2: This is due to my uncommitted changes to https://github.com/psmedley/samba-os2/blob/samba-os2-4.19.x/lib/messaging/messages_dgm.c (to fix all the leftover files in msg.lock) Will investigate...
Edit3: https://smedley.id.au/tmp/samba-4.19.4-os2-20240203.zip contains a change that seems to fix startup of winbindd but may cause message files in msg.lock to not be removed - needs testing...
-
Network browsing is still not working, same as before.
Clarifying - is this with Arcamapper from 5.0 or 5.1? They use quite different approaches...
-
Hey Paul,
Thanks for that update - WINBINDD is now fine again and the lock files are deleted when the server is stopped just like before.
One weird thing I just noticed - when I copy a file to the server (from an OS/2 client - both 4.19) the file name is truncated to 8.3 format. Do you see that? I tried both EA's on and off, but still the same. I know this didn't used to happen, but not sure when it crept in (first noticed in the 20240202 drop).
EDIT: I backlevelled the ndpsmb.dll on the client to the 20240110 version, and now files are copied with the full name. So it's not the server, it's the 20240131 client plugin causing this.
Like Neil, I also don't see shares with the ArcaMapper browser (AN 5.1). Is there something that can be added to smb.conf to allow displaying shares? SMBTREE works fine (once the password is added).
One question - the 4.11 version of smbcl411 came with some binaries of things like net.exe and smbtree.exe etc. that were considerably smaller than the ones that come with the server. Is it OK to replace the old ones on the client with the new ones from the server package?
Regards,
-
Like Neil, I also don't see shares with the ArcaMapper browser (AN 5.1). Is there something that can be added to smb.conf to allow displaying shares? SMBTREE works fine (once the password is added).
I assume you see the actual servers and just not the shares on them?
This is most likely due to using the wrong user credentials for browsing. The bottom right of the status bar shows the user that's currently being used. If that user doesn't have permission to see shares on each server, you won't see them.
You can change the browsing credentials from the Network->Authenticate menu item.
-
Hi Alex,
Yes, the workgroup and server show up in the left pane, just not any shares in the right. I am running Paul's 4.19 client and server, using the same credentials used to log on to the shares, and also used when running SMBTREE. The same credentials are shown as being 'active'. I have also tried 'root' and 'guest' but nothing seems to work. Is there a way to get logs for the ArcaMapper to figure this out?
EDIT: one thing I didn't mention that might be a clue - even though I am already logged on to a share with the credentials, the first time after booting when I open the browser, it asks for the password. Is that working as designed? Subsequent attempts to open the browser do not ask for the password.
Regards,
-
Network browsing is still not working, same as before.
Clarifying - is this with Arcamapper from 5.0 or 5.1? They use quite different approaches...
This is with ArcaOS 5.1. I didn't think to try the old ArcaMapper. I'll set one up and try it...
The old ArcaMapper is much like the new. Browsing fails with this message "Connecting to Magnesium failed (Error NT_STATUS_UNSUCCESSFUL)
I see the workgroup and computers, but not the shares. How do you enable browsing for a user?
-
Hey Paul,
Thanks for that update - WINBINDD is now fine again and the lock files are deleted when the server is stopped just like before.
One weird thing I just noticed - when I copy a file to the server (from an OS/2 client - both 4.19) the file name is truncated to 8.3 format. Do you see that? I tried both EA's on and off, but still the same. I know this didn't used to happen, but not sure when it crept in (first noticed in the 20240202 drop).
EDIT: I backlevelled the ndpsmb.dll on the client to the 20240110 version, and now files are copied with the full name. So it's not the server, it's the 20240131 client plugin causing this.
Like Neil, I also don't see shares with the ArcaMapper browser (AN 5.1). Is there something that can be added to smb.conf to allow displaying shares? SMBTREE works fine (once the password is added).
One question - the 4.11 version of smbcl411 came with some binaries of things like net.exe and smbtree.exe etc. that were considerably smaller than the ones that come with the server. Is it OK to replace the old ones on the client with the new ones from the server package?
I'll try take these in order:
1) truncation of files names - I'm not seeing this with:
31/01/24 17:50 50,526 124 ndpsmb.dll
md5sum: fbdf044abee62c4fa6020f04a041695b *ndpsmb.dll
Tested against linux and OS/2 servers - and copying from command line and via WPS.
2) the older client had net.exe and others built using smbcl4xx.dll (hence they were smaller) - there's no harm dropping in the larger ones
3) I need to do some testing with arcamapper against OS/2 and unix hosts. My test machines are still AOS 5.0 though, will need to spin up a 5.1 VM.
-
Paul,
Just tried again with the 20240131 client version you list (also checked md5sum), and when I drag and drop from a local drive to the shared drive, the copied file has a truncated 8.3 style name on the share - does it every time. Hadn't tried before, but when doing it from a command line it works correctly. Strange it doesn't happen for you...
Regards,
-
Just tried again with the 20240131 client version you list (also checked md5sum), and when I drag and drop from a local drive to the shared drive, the copied file has a truncated 8.3 style name on the share - does it every time. Hadn't tried before, but when doing it from a command line it works correctly. Strange it doesn't happen for you...
I used WPS Move command - drag/drop is too hard in Virtualbox. For interest, can you try with ndpsmb-20240127.zip ? the only difference is the return code of the check for A.+,;=[].B
ie https://github.com/psmedley/ndpsmb/commit/0fb2bbc232ea9d5d0e360fc24fb265462e55d956
-
Paul,
Client 20240127 seems to work fine...
Regards,
-
Thanks - I'll revert the last commit
-
Client 20240127 seems to work fine...
...re-tried here and still getting a TRAP-D.
-
Client 20240127 seems to work fine...
...re-tried here and still getting a TRAP-D.
Unfortunately I have no real clue why this is happening.
-
Hey Paul,
I have been using the Netlabs 3.6 SAMBA WPI to install SAMBA on my machine, then use the 'SAMBA Simple Configuration Center' app to update it with your binaries. This has worked well enough, except now the 'SAMBA Users and Groups' app gives an error when run after updating to your current 4.19.4 binaries. From what I have been able to determine, 'SAMBA Users and Groups' uses 'net rpc xxxx' commands to manipulate the users and groups in SAMBA databases. Did some testing to see if I could figure out why it doesn't work...
After installing the 3.6 wpi, I am able to issue say - 'net rpc user' - on a command line and after entering a password it lists all users set up for SAMBA. Other 'net rpc xxx' commands also work.
After upgrading to 4.19.4, when I enter 'net rpc user', after entering a password I get nothing (no error, it just returns to the prompt). So that explains the error I get when trying to run 'SAMBA Users and Groups'. Is this a bug?
EDIT: I went thru and tried each of your SAMBA builds starting with 4.11. SAMBA Users and Groups worked with 4.11, 4.13 and 4.15, but not 4.18 and 4.19.
The 'SAMBA Status Monitor' 'Nethood' tab also gives an error (other tabs work fine), and I get an exceptq log in SMBTREE - I'll attach.
EDIT: 4.11 was the last build 'Nethood' worked with.
Regards,
-
Confirming 'net rpc user' lack of output seems to be a bug. On my linux box running Samba 4.18 it shows a list of users. If I run 'net rpc user -d 10' it shows me:
tconx ok
NetQueryDisplayInformation: struct NetQueryDisplayInformation
out: struct NetQueryDisplayInformation
entries_read : *
entries_read : 0x00000000 (0)
result : UNKNOWN_ENUM_VALUE (2152)
return code = 2152
Freeing parametrics:
I assume this is the same for you?
Edit: the output of 'net rpc user -d 10' from a working (4.15?) and non-working net.exe might be interesting.
I'll have to work out what's going on with smbtree.... Is there anyway to determine how smbtree is being called? ie what command line parameters are used.
-
Paul,
I see the same as you with server 4.19 with 'net rpc user -d 10' at the end:
gensec_update_send: spnego[20049570]: subreq: 2004b1a0
gensec_update_done: spnego[20049570]: NT_STATUS_OK tevent_req[2004b1a0/../../aut
h/gensec/spnego.c:1631]: state[2] error[0 (0x0)] state[struct gensec_spnego_upd
ate_state (2004b2a0)] timer[0] finish[../../auth/gensec/spnego.c:2116]
session setup ok
signed SMB2 message (sign_algo_id=2)
tconx ok
NetQueryDisplayInformation: struct NetQueryDisplayInformation
out: struct NetQueryDisplayInformation
entries_read : *
entries_read : 0x00000000 (0)
result : UNKNOWN_ENUM_VALUE (2152)
return code = 2152
Freeing parametrics:
and server 4.15 shows at the end:
[0000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
[0010] 00 00 00 00 00 00 00 00 ........
Got pdu len 48, data_len 24
rpc_api_pipe: got frag len of 48 at offset 0: NT_STATUS_OK
rpc_api_pipe: host localhost returned 24 bytes.
samr_Close: struct samr_Close
out: struct samr_Close
handle : *
handle: struct policy_handle
handle_type : 0x00000000 (0)
uuid : 00000000-0000-0000-0000-000000000
000
result : NT_STATUS_OK
Freeing parametrics:
Couldn't figure out how to capture the whole thing - is there a way?
I'll look at the Rexx code of the SAMBA Status Monitor (on the Netlabs Trac site) and see if I can figure out the actual SMBTREE command used there after work...
Regards,
-
Try 'net rpc user -d 10 2>&1 | tee net_rpc_user.log' to capture all the output.
-
Thanks Dave! I forgot about that...
Attached are the full results for the 4.15 and 4.19 servers...
Regards,
-
Hey Paul,
Spent the last couple of evenings pondering the forgotten lore of Netlabs SAMBA apps code to try to figure out the SMBTREE command that causes the trap in server 4.19 and it seems to be something like this:
SMBTREE -S -N -d 2 2>smberror.txt 1>smbtree.txt
I'll attach the results. They show a trap, and I tried with both 'null passwords = Yes' and 'No' in smb.conf, but no difference.
So also tried SMBTREE -S -U DaveM%password -d 2 2>smberror2.txt 1>smbtree2.txt
and don't get a trap, but it still doesn't seem to work quite right - I'll attach them too. The SMBMon app probably needs to be updated to work properly with server 4.19 in any case...
Comparing the logs for 'net rpc user' from the 4.15 and 4.19 server, it seems the 4.19 server doesn't even use the 'rpc' part - it is completely missing from the log...
Regards,
-
Thanks Dave, I'll try review over the weekend. I've been busy on some stuff for OpenHAB this week.
Edit: net.exe is bailing here for some reason - https://github.com/psmedley/samba-os2/blob/samba-os2-4.19.x/source3/rpc_client/cli_pipe.c#L3278
-
Thanks Dave, I'll try review over the weekend. I've been busy on some stuff for OpenHAB this week.
Edit: net.exe is bailing here for some reason - https://github.com/psmedley/samba-os2/blob/samba-os2-4.19.x/source3/rpc_client/cli_pipe.c#L3278
Interesting. net.exe seems to be working - it may be a server issue.
running:
net rpc user -S 192.168.1.200
works - where 192.168.1.200 is the IP of my linux server. Using the IP of the OS/2 server doesn't work. Using an older client against the new OS/2 server also doesn't work. Using an older client against my linux server works.
Next step is to get some server logs of the attempt to run net.exe.
Update, found the below in the server logs:
[2024/02/10 13:09:48.555000, 10, pid=35737, effective(109, 514), real(0, 0)] ../../source3/rpc_client/local_np.c:391(start_rpc_host_send)
start_rpc_host_send: posix_spawn() failed: No such file or directory
[2024/02/10 13:09:48.555000, 10, pid=35737, effective(109, 514), real(0, 0)] ../../source3/rpc_client/local_np.c:739(local_np_connect_started)
local_np_connect_started: start_rpc_host_recv failed: No such file or directory
[2024/02/10 13:09:48.555000, 10, pid=35737, effective(109, 514), real(0, 0), class=rpc_srv] ../../source3/rpc_server/srv_pipe_hnd.c:91(np_open)
np_open: local_np_connect failed: No such file or directory
[2024/02/10 13:09:48.555000, 10, pid=35737, effective(109, 514), real(0, 0)] ../../source3/smbd/smb2_pipes.c:141(open_np_file)
np_open(samr) returned NT_STATUS_OBJECT_NAME_NOT_FOUND
OK couple of problems - it's trying to spawn samba-dcerpcd (which wasn't built), and it was also being attempted to run from the wrong directory. However, hardcoding the path to one that's valid, we get a new error:
[2024/02/10 14:24:03.708000, 10, pid=37058, effective(109, 514), real(0, 0)] ../../source3/rpc_client/local_np.c:179(np_sock_connect_connected)
np_sock_connect_connected: async_connect_recv returned Can't assign requested address
[2024/02/10 14:24:03.708000, 10, pid=37058, effective(109, 514), real(0, 0)] ../../source3/rpc_client/local_np.c:703(local_np_connect_connected)
local_np_connect_connected: np_sock_connect failed: Can't assign requested address
-
Maybe making some progress.... error from net is now:
cli_rpc_pipe_open_noauth: rpc_pipe_bind for pipe samr failed with error NT_STATUS_IO_TIMEOUT
Corresponding server log is:
[2024/02/10 17:13:02.532000, 10, pid=50843, effective(109, 514), real(0, 0), class=smb2] ../../source3/smbd/smb2_ioctl_named_pipe.c:168(smbd_smb2_ioctl_pipe_read_done)
smbd_smb2_ioctl_pipe_read_done: np_read_recv nread = -1 is_data_outstanding = 0, status = NT_STATUS_CONNECTION_DISCONNECTED
[2024/02/10 17:13:02.536000, 10, pid=50843, effective(109, 514), real(0, 0), class=smb2] ../../source3/smbd/smb2_ioctl.c:314(smbd_smb2_request_ioctl_done)
smbd_smb2_request_ioctl_done: smbd_smb2_ioctl_recv returned 4280 status NT_STATUS_CONNECTION_DISCONNECTED
[2024/02/10 17:13:02.536000, 3, pid=50843, effective(109, 514), real(0, 0), class=smb2] ../../source3/smbd/smb2_server.c:4033(smbd_smb2_request_error_ex)
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_CONNECTION_DISCONNECTED] || at ../../source3/smbd/smb2_ioctl.c:353
[2024/02/10 17:13:02.536000, 10, pid=50843, effective(109, 514), real(0, 0), class=smb2] ../../source3/smbd/smb2_server.c:3918(smbd_smb2_request_done_ex)
smbd_smb2_request_done_ex: mid [5] idx[1] status[NT_STATUS_CONNECTION_DISCONNECTED] body[8] dyn[yes:1] at ../../source3/smbd/smb2_server.c:4084
-
OK - if my theory is right - I know what's going wrong, and think I know how to fix it....
-
Hey Paul,
Curious how your theory panned out...
Regards,
-
Apologies for the delay. We were away last weekend (16th - 18th) and I was side tracked last week.
I still think I'm right, but I haven't found the smoking gun yet. I did manage to patch the source to 4.19.5 last week - will post binaries at some point.
-
4.19.5 binaries
smbcl419.dll (for use with previous 4.19.x ndpsmb.dll): https://smedley.id.au/tmp/smbcl419-4.19.5-20240225.zip
All executables including server: https://smedley.id.au/tmp/samba-4.19.5-os2-20240225.zip
This doesn't fix the bug with 'net rpc user', things now die around:
file_new: new file fnum 1809131870
file_name_hash: C:/var/temp/samr hash 0xf50f54d6
local_np_connect_send: socket_dir = C:\MPTN\ETC/samba/ncalrpc, state->socketpath = \socket\samr, lower_case_pipename = samr
np_sock_connect_send: sockpath = \socket\samr
push_sec_ctx(109, 514) : sec_ctx_stack_ndx = 1
push_conn_ctx(2061744258) : conn_ctx_stack_ndx = 0
setting sec ctx (0, 0) - sec_ctx_stack_ndx = 1
Security token: (NULL)
UNIX token of user 0
Primary group is 0 and contains 0 supplementary groups
pop_sec_ctx (109, 514) - sec_ctx_stack_ndx = 0
np_sock_connect_connected: async_connect_recv returned Can't assign requested address
local_np_connect_connected: np_sock_connect failed: Can't assign requested address
-
Thanks Paul!
This 4.19.5 server seems to perform about the same as the 4.19.4 version, except WINBINDD will not start - log ends with this message:
[2024/02/25 09:07:58.200000, 5] ../../librpc/rpc/dcesrv_core.c:430(dcesrv_interface_register_b)
dcesrv_interface_register_b: Interface 'winbind' registered on endpoint 'ncalrpc:' (single process required)
[2024/02/25 09:07:58.200000, 1] ../../source3/winbindd/winbindd.c:1038(winbindd_setup_listeners)
lp_winbindd_socket_directory() = \socket\winbindd, WINBINDD_SOCKET_NAME = pipe
[2024/02/25 09:07:58.200000, 0] ../../lib/util/util.c:225(directory_create_or_exist)
directory_create_or_exist: mkdir failed on directory \socket\winbindd: No such file or directory
[2024/02/25 09:07:58.200000, 0] ../../lib/util/become_daemon.c:123(exit_daemon)
exit_daemon: daemon failed to start: Winbindd failed to setup listeners, error code 32
Didn't we see something like this before?
Regards,
EDIT: added net rpc user log for comparison...
-
This is a side effect of me trying to fix 'net RPC user'
-
Sorry all, I've been busy. I have some ideas from Steven re: the net rpc user issue, and I did manage to merge the 4.20.0 code this evening. Will see if I can build it tomorrow.