VOGONS


Reply 400 of 434, by Ringding

User metadata
Rank Member
Rank
Member

I found two issues, one with the current version, and one with the testing version.

Testing version: Does not work with qemu slirp (user networking). I get many: "qemu: Slirp: Failed to send packet, ret: -1" lines. Therefore, I have not investigated further.

Current version: When smartdrv is activated for the netdrive, it tends to hang pretty quickly. My test case is running the Borland C++ DOS IDE from a NetDrive. Happens on real hardware and in qemu, the only difference being that in qemu, it hangs upon entering the IDE, while on real hardware, after leaving it. Happens with the Aug 2024 version and with the current one (Jan 2025); the testing one does not work on qemu slirp. Happens with both the E100B packet driver and the RTL8139 one. If smartdrv is loaded before the netdrive is connected, the problem is side-stepped, because smartdrv does not activate itself for the non-connected netdrive. Everything with MS DOS 6.22 in real mode (no EMM386). This might have been encountered by others, but I don't remember it being mentioned prominently anywhere.

Reply 401 of 434, by mbbrutman

User metadata
Rank Oldbie
Rank
Oldbie

Qemu:

The qemu message is an error message that basically says it tried to pass a packet to the host machine to send, and it could not. The test version of NetDrive isn't doing anything differently when sending packets, and it certainly should not be able to force an error message in an emulator. If you revisit this I'd like to know more about when those error messages appeared, and what NetDrive was doing at the time. (Was it the initial connect? Were you doing a performance test?) The error messages might be harmless and there just for debugging purposes.

I'm testing with 86Box here, which is different than qemu but it's also using SLiRP for packet handling. I'm not having any problems with it here even when doing performance testing.

SmartDrv:

I'm testing with a remotely connected drive that has SmartDrv enabled while in Windows 3.11 ... It's behaving normally and the status from SmartDrv show that it is getting cache hits. So I think it's working.


However, I'm also testing with a much newer version of the test read-ahead test code. My current version has larger stack sizes than the April test version, which can help in a complex environment. Would you be willing to test a newer version of the test code?

Reply 402 of 434, by Ringding

User metadata
Rank Member
Rank
Member

Regarding slirp: I thought it was during initial connection, but I rechecked now. It happens as soon as I do anything more than "dir" (run scandisk on the drive or run the Borland C++ IDE from it). Everything else remaining the same, with the released netdrive version these things work like a charm.

Reply 403 of 434, by Ringding

User metadata
Rank Member
Rank
Member

More testing: With a different packet driver it works, so there is no evidence that netdrive is misbehaving.

Reply 404 of 434, by mbbrutman

User metadata
Rank Oldbie
Rank
Oldbie

I prepared a new test version:

Changes from the previous test version:

  • 486 CPU detection added and default read-ahead for 386 systems reduced.
  • Reduce the time interrupts are disabled when using write-verify on larger writes.
  • Increased stack sizes; not related to performance but this helps in complex environments

It's been working perfectly for me in a few different environments. If you don't want to install the test server locally my public test server at brutman.com:2002 works. (Connect to "fat12.dsk" or "bigdisk.dsk".)

Reply 405 of 434, by Ringding

User metadata
Rank Member
Rank
Member

I have not tried your new versions yet.

Regarding smartdrv, I have not found a single installation that did not exhibit this behavior: Run BC++3.1 IDE (from netdrive), exit, load smartdrv, run again -> Hang

I have observed this behavior on:

  • qemu+slirp, rtl8139
  • Cyrix 486, rtl8019as
  • P200MMX, E100B
  • P-III 600, 3c509
  • P4 2.8GHz, 3c940

Reply 406 of 434, by mbbrutman

User metadata
Rank Oldbie
Rank
Oldbie

Please try the new version - the increased stack sizes might fix the problem.

Otherwise, I'll have to try to recreate the problem here. If we get to that point please point me at the specific BC++ version that you are using.

Thanks,
Mike

Reply 407 of 434, by Grzyb

User metadata
Rank l33t
Rank
l33t

Just tried the new version...

The attachment 1.png is no longer available
The attachment 2.png is no longer available

YES!
You have fixed the incompatibility with ODI!

I haven't tried it yet, but now it may be possible to play IPX multiplayer games from NetDrive disks...

In 2003, I voted in favour of joining the European Union. However, due to later developments - especially the restrictions on cash usage - I have withdrawn my support. DOWN WITH THE EU!

Reply 408 of 434, by Ringding

User metadata
Rank Member
Rank
Member
mbbrutman wrote on 2026-09-10, 15:16:

Please try the new version - the increased stack sizes might fix the problem.

Otherwise, I'll have to try to recreate the problem here. If we get to that point please point me at the specific BC++ version that you are using.

Still the same. I will gather the information for you.

Reply 409 of 434, by mbbrutman

User metadata
Rank Oldbie
Rank
Oldbie
Grzyb wrote on 2026-09-10, 17:11:
Just tried the new version... […]
Show full quote

Just tried the new version...

The attachment 1.png is no longer available
The attachment 2.png is no longer available

YES!
You have fixed the incompatibility with ODI!

I haven't tried it yet, but now it may be possible to play IPX multiplayer games from NetDrive disks...

I didn't set out trying to fix that incompatibility, but I'm happy to hear that it is gone. That is a win ...

Reply 410 of 434, by Ringding

User metadata
Rank Member
Rank
Member

I just did the most basic installation of https://winworldpc.com/download/40c38f3a-5518 … c3-a4e284a2c3a5 and https://winworldpc.com/download/f7396558-9ba2 … 10-fa163e9022f0 on qemu, and I can immediately reproduce it. Commented out the smartdrv line in autoexec.bat. Copied the resulting BORLANDC directory to the NetDrive.

Boot, connect, D:, cd D:\borlandc\bin, bc, exit -> works.
Boot, connect, smartdrv, D:, cd D:\borlandc\bin, bc -> hangs.

I’m using rtspkt.com and rtl8139.

mtcp.cfg is boring:

PACKETINT 0x60
MTU 1500
IPADDR 10.0.2.15
NETMASK 255.255.255.0
GATEWAY 10.0.2.2

EDIT: I used a slightly different version of the packet driver, but because it happens everywhere, I figure it does not matter. Anyway, I tried this one now, and nothing changed: https://theretroweb.com/drivers/158

Reply 411 of 434, by Grzyb

User metadata
Rank l33t
Rank
l33t

I've found a new problem...

Celeron 266
DM9PCIPD
NetDrive 2025-01-10 works fine.
The new version, however, fails when writing:

The attachment nd26.png is no longer available

But the same new version works fine on another machine:
Pentium III 800EB
E100PKT

In 2003, I voted in favour of joining the European Union. However, due to later developments - especially the restrictions on cash usage - I have withdrawn my support. DOWN WITH THE EU!

Reply 412 of 434, by Grzyb

User metadata
Rank l33t
Rank
l33t
Grzyb wrote on 2026-09-11, 18:45:

But the same new version works fine on another machine:
Pentium III 800EB
E100PKT

Correction: it fails on this machine as well, but it's harder to observe - sometimes it successfully writes even large files, sometimes not:

The attachment error.png is no longer available

In 2003, I voted in favour of joining the European Union. However, due to later developments - especially the restrictions on cash usage - I have withdrawn my support. DOWN WITH THE EU!

Reply 413 of 434, by mbbrutman

User metadata
Rank Oldbie
Rank
Oldbie

Grzyb - Did you try using "Retry" when you got those messages? If so, what happened?

No storage device is guaranteed to do what you ask every time; transient errors are possible. If those are being caused by network congestion or the read-ahead caching being too aggressive, then hitting Retry should get you past that specific transient error. That is perfectly normal behavior. If the machine locked up or the drive letter was never usable again then I would consider that to be a problem.

If it is a transient error, retry your test but reduce the size of the allowed read-ahead. Your server might be flooding your client.

Reply 414 of 434, by mbbrutman

User metadata
Rank Oldbie
Rank
Oldbie
Ringding wrote on 2026-09-11, 18:14:
I just did the most basic installation of https://winworldpc.com/download/40c38f3a-5518 … c3-a4e284a2c3a5 and https://winworldpc […]
Show full quote

I just did the most basic installation of https://winworldpc.com/download/40c38f3a-5518 … c3-a4e284a2c3a5 and https://winworldpc.com/download/f7396558-9ba2 … 10-fa163e9022f0 on qemu, and I can immediately reproduce it. Commented out the smartdrv line in autoexec.bat. Copied the resulting BORLANDC directory to the NetDrive.

Boot, connect, D:, cd D:\borlandc\bin, bc, exit -> works.
Boot, connect, smartdrv, D:, cd D:\borlandc\bin, bc -> hangs.

I’m using rtspkt.com and rtl8139.

mtcp.cfg is boring:

PACKETINT 0x60
MTU 1500
IPADDR 10.0.2.15
NETMASK 255.255.255.0
GATEWAY 10.0.2.2

EDIT: I used a slightly different version of the packet driver, but because it happens everywhere, I figure it does not matter. Anyway, I tried this one now, and nothing changed: https://theretroweb.com/drivers/158

I've installed DOS 6.22 and BC from your links. I'm using VirtualBox with the PCNet packet driver.

The only time I can get it to hang is if I tell SmartDrv to enable the write cache for drive d. When I do that it hangs every time. If I don't do that, it works every time.

Can you confirm that you are getting the hang when write caching is enabled? (Read caching is obviously fine.)

Reply 415 of 434, by Grzyb

User metadata
Rank l33t
Rank
l33t

Now using the Celeron, where I'm confident that the old version works without problems...

The attachment zero_ra.png is no longer available

It's seriously broken.

In 2003, I voted in favour of joining the European Union. However, due to later developments - especially the restrictions on cash usage - I have withdrawn my support. DOWN WITH THE EU!

Reply 416 of 434, by Ringding

User metadata
Rank Member
Rank
Member
mbbrutman wrote on 2026-09-11, 21:00:

Can you confirm that you are getting the hang when write caching is enabled? (Read caching is obviously fine.)

I don't tell it. It is just on by default. But yes, it is on.

Reply 417 of 434, by mbbrutman

User metadata
Rank Oldbie
Rank
Oldbie
Grzyb wrote on 2026-09-11, 21:02:

Now using the Celeron, where I'm confident that the old version works without problems...

The attachment zero_ra.png is no longer available

It's seriously broken.

I need to know if it is making any progress ... please look at the server side and use the status command there while this is happening. If you retry and the server doesn't report any more blocks being read or no commands come in, then it is broken on your system as opposed to a transient error. If it makes progress, then it's a transient error.

Are you still using the ODIPKT setup when you do this?

Reply 418 of 434, by mbbrutman

User metadata
Rank Oldbie
Rank
Oldbie
Ringding wrote on 2026-09-11, 21:15:
mbbrutman wrote on 2026-09-11, 21:00:

Can you confirm that you are getting the hang when write caching is enabled? (Read caching is obviously fine.)

I don't tell it. It is just on by default. But yes, it is on.

Well, that's interesting because on my system it is not on by default. I have to explicitly tell SmartDrv to enable write caching when turning it on for drive D. And the DOS install added the /X flag to SmartDrv which disables write-behind caching for all drives. So I have no idea why your system things write caching should be turned on.

Also, this is not a problem with the new code. The 2025-01-10 version of Netdrive behaves the same way. Write caching is generally fine, and I can copy files around on D from the command line with no problems. But starting BC causes the hang.

Reply 419 of 434, by Grzyb

User metadata
Rank l33t
Rank
l33t
mbbrutman wrote on 2026-09-11, 21:30:

Are you still using the ODIPKT setup when you do this?

Native PD - DM9PCIPD.

Between the two statuses, I pressed R(etry) several times:

2026-09-11 23:48:07 New Session: 57616, Addr: 192.168.0.102:52720, Protocol: 3, Image: informel.dsk (RW) Journal type: No Journal                              
2026-09-11 23:49:22 > status

Server stats:
Current time: 2026-09-11 23:49:22, Started: 2026-09-11 23:47:09, Uptime: 2m13s
Connects: Good: 1, Failed: 0, Disconnects: 0
Blocks: Read: 3, Written: 1
Retries: Reads: 0, Writes: 0
Session timeouts: 0, Most concurrent sessions: 1

Server flags: Max session length: 0, Session timeout: 0, Max active sessions: 20

Clients:

Session: 57616, 192.168.0.102:52720, Protocol: 3, Image: informel.dsk (RW) Journal type: No Journal
Started: 2026-09-11 23:48:07, Last seen: 2026-09-11 23:48:59, OS Ver: DOS 7.10
Blocks (Read: 3, Written: 1), Retries: 0, Latency: 3

2026-09-11 23:50:16 > status

Server stats:
Current time: 2026-09-11 23:50:16, Started: 2026-09-11 23:47:09, Uptime: 3m6s
Connects: Good: 1, Failed: 0, Disconnects: 0
Blocks: Read: 3, Written: 1
Retries: Reads: 0, Writes: 0
Session timeouts: 0, Most concurrent sessions: 1

Server flags: Max session length: 0, Session timeout: 0, Max active sessions: 20

Clients:

Session: 57616, 192.168.0.102:52720, Protocol: 3, Image: informel.dsk (RW) Journal type: No Journal
Started: 2026-09-11 23:48:07, Last seen: 2026-09-11 23:48:59, OS Ver: DOS 7.10
Blocks (Read: 3, Written: 1), Retries: 0, Latency: 3

tcpdump can't see anything when pressing R(etry), either:

23:48:07.192336 ARP, Request who-has 192.168.0.102 (Broadcast) tell 192.168.0.102, length 46
23:48:07.306319 ARP, Request who-has localhost.localdomain (Broadcast) tell 192.168.0.102, length 46
23:48:07.306358 ARP, Reply localhost.localdomain is-at ac:e2:d3:e9:6b:5d (oui Unknown), length 28
23:48:07.311213 IP 192.168.0.102.52720 > localhost.localdomain.globe: UDP, length 79
23:48:07.311899 IP localhost.localdomain.globe > 192.168.0.102.52720: UDP, length 87
23:48:07.318609 IP 192.168.0.102.52720 > localhost.localdomain.globe: UDP, length 22
23:48:07.318965 IP localhost.localdomain.globe > 192.168.0.102.52720: UDP, length 528
23:48:12.709021 ARP, Request who-has 192.168.0.102 tell localhost.localdomain, length 28
23:48:12.739612 ARP, Reply 192.168.0.102 is-at 00:80:ad:78:72:e7 (oui Unknown), length 46
23:48:53.307160 IP 192.168.0.102.52720 > localhost.localdomain.globe: UDP, length 22
23:48:53.307554 IP localhost.localdomain.globe > 192.168.0.102.52720: UDP, length 528
23:48:59.114040 IP 192.168.0.102.52720 > localhost.localdomain.globe: UDP, length 528
23:48:59.114484 IP localhost.localdomain.globe > 192.168.0.102.52720: UDP, length 16
23:48:59.117300 IP 192.168.0.102.52720 > localhost.localdomain.globe: UDP, length 22
23:48:59.117646 IP localhost.localdomain.globe > 192.168.0.102.52720: UDP, length 528
23:49:04.421531 ARP, Request who-has 192.168.0.102 tell localhost.localdomain, length 28
23:49:04.476890 ARP, Reply 192.168.0.102 is-at 00:80:ad:78:72:e7 (oui Unknown), length 46

In 2003, I voted in favour of joining the European Union. However, due to later developments - especially the restrictions on cash usage - I have withdrawn my support. DOWN WITH THE EU!