Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
21 user(s) are online (12 user(s) are browsing Forums)

Members: 0
Guests: 21

more...

Support us!

Headlines

Forum Index


Board index » All Posts (salass00)




Re: NetSurf 3.11 has been released!
Just can't stay away
Just can't stay away


I just noticed to my surprise that I also have the same 4.321 version of bsdsocket.library on my Sam460 beta installation. It exhibits the same random hanging in gethostbyname_r() and crashing in getaddrinfo() so these problems are not Tabor/A1222 specific.

Given that this version 4.321 is quite old (2016) it is possible that these problems are already fixed in the latest roadshow.

Go to top


Re: NetSurf 3.11 has been released!
Just can't stay away
Just can't stay away


@salass00

Quote:

Looking at the results of the gethostbyname_r() test it's still not working quite correctly as it is returning the same IP addresses for some host names so it looks like it is not as thread safe as it's supposed to be. Also it still hangs, just not as frequently...


After writing my gethostbyname_r() fallback implementation and noting to my surprise that it exhibits the same flaw I suddenly realized that the erroneous reported IPs are down to my bad test code and not bsdsocket.library.

The reason is that I use inet_ntoa() to convert the IPs to string format which is not thread safe (the gethostbyname() test works fine because I use isock->INet_NtoA() there).

This still doesn't explain why gethostbyname_r() hangs though, or why getaddrinfo() crashes.


Edited by salass00 on 2024/9/29 14:54:34
Go to top


Re: NetSurf 3.11 has been released!
Just can't stay away
Just can't stay away


I just added getaddrinfo() support to my test program and it causes an immediate DSI crash in bsdsocket.library.

What I'm currently finding most puzzling about it is that the stack trace goes directly from my program to bsdsocket.library even though I know that it's being called through the wrapper function in newlib.library (I added some debug output there before and after), and the newlib function is definitely creating a stack frame and it is using bctrl, which updates the link register, to call bsdsocket (I checked both of these things by disassembling the object code generated by gcc).

Edit: If I get Ranger to do a stack trace of the crashed process it correctly shows the newlib.library entry in between. Not sure why it isn't showing in the Grim Reaper stack trace.

Go to top


Re: NetSurf 3.11 has been released!
Just can't stay away
Just can't stay away


@joerg

I was referring to the threaded resolver in libcurl. I was (same as MickJT) under the impression that this was your work, or at least based on it.

Go to top


Re: Internal USB header on the Amiga 1222 motherboard - does it exist or not?
Just can't stay away
Just can't stay away


@FirstNinja

I also had trouble finding the correct information for various things in the A1222 Technical Reference Manual and had to ask for help on the beta tester mailing list (unfortunately I don't seem to have any of the e-mails left so I can't check them).

At the very least in the TRM (version 1.0.1) if you zoom in on the motherboard picture on page 17 you should find a header labeled "FP USB". I think that may be the one you want. I also have in my Tabor directory a PDF "FRONTX - Mother-board USB Pin Assignment - USB Header (pinout) Connection Guide.pdf" which I think may explain the pin layout used (I have no idea why else it would be there).

Go to top


Re: NetSurf 3.11 has been released!
Just can't stay away
Just can't stay away


@Chris

Threaded resolver should work still, as long as it opens its own local socket base/interface and calls gethostbyname() through it instead of a global ISocket interface. This is the same trick that is used in OWB/Odyssey IIRC.

A while back Several years ago I added wrapper functions for gethostbyname_r(), gethostbyaddr_r(), getnameinfo(), getaddrinfo() and some others to newlib but since I didn't have access to any newer builds of roadshow I was never able to test them personally. Now I'm thinking I should probably add some better bsdsocket version checking and maybe some fallback code for older bsdsocket versions instead of just failing with errno=ENOSYS.

BTW when I mentioned gethostbyaddr*() in the previous post I really meant getaddrinfo(), as gethostbyaddr() is an old function that exists already in the public roadshow as well as AmiTCP/Miami/etc. The naming of these functions is really confusing IMO.

Go to top


Re: Internal USB header on the Amiga 1222 motherboard - does it exist or not?
Just can't stay away
Just can't stay away


@FirstNinja

I have one working front USB port on my A1222 system so there is definitely a working USB header on the A1222 board.

It's been a while since I set the system up so I don't quite recall the finer details but I think the other front USB port either used a different type of connector so it wouldn't work with the A1222 or it may have been something to do with the pin-out of the header on the motherboard.

Go to top


Re: NetSurf 3.11 has been released!
Just can't stay away
Just can't stay away


I wasn't aware and hadn't noticed that a newer bsdsocket.library build with support for gethostbyname_r(), gethostbyaddr*(), etc. had been released on the A1222 beta ISO.

Now knowing this, I've created a small test program that launches child processes to resolve various host names using currently either gethostbyname() or gethostbyname_r() (gethostbyaddr() and gethostbyaddr_r() will be added eventually). As gethostbyname() is not thread safe every thread opens its own socket base and interface and uses it through that.

What I've found so far is that using gethostbyname() everything works fine and all host names are resolved correctly, but if I set it to use gethostbyname_r() only the first host name gets resolved and all the other gethostbyname_r() calls just hang infinitely.

Edit: Running the same test program several more times with gethostbyname_r, it has twice managed to resolve the first three host names so there is likely some kind of race condition leading to a dead lock situation in gethostbyname_r() (it can still be interrupted with CTRL-C though). The first three host names in my test are all defined by the hosts file which may be helping, but even if I remove these so that the first host name has to be resolved via remote DNS it will still succeed on the first gethostbyname_r() call.

Edit2: If I remove the local host names then the gethostbyname_r() test seems to complete successfully each time actually (at least so far).

Edit3: Looking at the results of the gethostbyname_r() test it's still not working quite correctly as it is returning the same IP addresses for some host names so it looks like it is not as thread safe as it's supposed to be. Also it still hangs, just not as frequently...


Edited by salass00 on 2024/9/28 11:57:27
Edited by salass00 on 2024/9/28 12:02:56
Edited by salass00 on 2024/9/28 12:54:54
Edited by salass00 on 2024/9/28 12:57:45
Go to top


Re: Enhanger 2.2
Just can't stay away
Just can't stay away


@broadblues

Quote:

Actually it does, but has a bug with certain combinations, such as changing FOO to FOOD doesn't work but changing FOO to BARFOOD does work.


This is now fixed in the latest V54.6 beta release of RAWBInfo.

Go to top


Re: SMB2FS volume name query
Just can't stay away
Just can't stay away


@joerg

I tried using asterisk (*") and also backslash (\") to escape the quotes but neither helped.

Go to top


Re: SMB2FS volume name query
Just can't stay away
Just can't stay away


While smb2fs does not have any problem with double-quote characters being used inside the startup string, it appears that the mount command does which I find strange given that it doesn't even bother to remove the surrounding quote characters before passing the string to smb2fs.

I will have to see if mount allows some way to escape the quotes and if not see about allowing the quotes to be written some way (f.i. as two single quotes).

Go to top


Re: SDK 54.16 in CubicIDE
Just can't stay away
Just can't stay away


@jarokuczi

Just add -athread=native option at link stage (LDFLAGS) and those errors should be gone.

Go to top


Re: A1222 support in the SDK and problems
Just can't stay away
Just can't stay away


@joerg

Quote:

Unless the way I implemented the newlib libc.(a|so) stub functions was changed only a new startup code (crtbegin) using interface "spe" instead of "main" should be required.


Yes, that should still work.

Go to top


Re: A1222 support in the SDK and problems
Just can't stay away
Just can't stay away


@flash

Quote:

Also libc libraries (newlib/clib) needs to be recompiled for P1222 support, we need new sdk to produce the right binaries for A1222 without any workaround.


A special SPE compiled version of newlib.library for the Tabor/A1222 exists since version 53.54 (released to beta testers in October 2019).

The exposed ABI of the library's "main" interface is and has to remain that of generic PPC code (e.g. floating point parameters and results are passed in the emulated FPU registers) because otherwise it wouldn't be possible to run existing non-SPE compiled programs on the A1222.

What might however be possible would be to also expose the SPE ABI functions directly through another "main.spe" interface but in order for it to be usable special versions of the startup code and libc will likely also be needed.

The ABI for SPE code generated by gcc is identical to soft-float ABI in that double precision floats are passed as register pairs (r3/r4, r5/r6, r7/r8, r9/r10) even though for the SPE they could be passed in a single 64-bit register.

Go to top


Re: AmigaOS port of libsmb2
Just can't stay away
Just can't stay away


@Ami603

Quote:

Does smb2fs handler support the ACTION_SET_DATE packet?


No, it is not supported because libsmb2 does not have a function to set the mtime of a file or directory.

I've thought about making the operation fail silently instead but that could cause problems for programs that depend on this feature. IMHO it is better to (as happens currently) return ERROR_ACTION_NOT_KNOWN (meaning that the fs does not support the operation) and then the program can itself decide whether this error is critical enough to stop it from continuing or not.

Go to top


Re: Porting astromenace to AmigaOS4
Just can't stay away
Just can't stay away


@SinanSam460

Just move -lpng16 so that it's right after -lfreetype.

Go to top


Re: Daylight saving settings not saving properly in Time Prefs
Just can't stay away
Just can't stay away


@VooDoo

What version of battclock.resource do you have installed ("version full battclock.resource")?

There were some fixes made for the X5000 and A1222 in 2022.

Go to top


Re: Daylight saving settings not saving properly in Time Prefs
Just can't stay away
Just can't stay away


@livebyfaith74

IIRC doing "setclock reset" may also help on some h/w.

Go to top


Re: AmigaOS port of libsmb2
Just can't stay away
Just can't stay away


@Raziel

The github repo is only for the AROS/AmigaOS 3 fork of filesysbox.

The AmigaOS 4 version is distributed with the OS and with Enhancer Software only.

Go to top


Re: AmigaOS port of libsmb2
Just can't stay away
Just can't stay away


Apparently it is possible to set some samba servers to timeout connections after a period of inactivity (for smbd this can be done using the deadtime option in /etc/samba/smb.conf) and smb2fs doesn't handle this situation very well ATM.

Ideally smb2fs should detect this somehow and restart the connection when it happens, but as a quick fix I tried to make smb2fs ping the server at regular intervals using smb2_echo() to keep the connection alive but this didn't seem to help.

Go to top



TopTop
(1) 2 3 4 ... 92 »




Powered by XOOPS 2.0 © 2001-2024 The XOOPS Project