mysql-server SIGILL on arm64/aarch64 with FreeBSD 14.1 for 8.0, 8.1, and 8.4 - no activity?

No. Memory was about 60% use, and the file system is 41% with inodes at 12%. There was no swapping and virtually no paging going on (vmstat). I finally killed it/them after they had each accumulated more than 11 HOURS of CPU time. I'm not sure how to proceed. I guess I'll try the "make clean" just because I don't have any better ideas, and this time, if it offers me the configuration options again, I'll choose the defaults, both to keep my test case closer to the original that faults, and to go with something that has worked for someone. Is there an environment variable or something you can set so that it doesn't stop and throw up that dialogue box to ask you? I'm also debating whether I should switch branches.
 
I'll try to remember that for next time. It didn't ask me this time, so I'm just letting it go. So it kept those settings somewhere that "make clean" doesn't touch. Which also brings up the question of how I would change them if I really wanted to... I'll do some digging.

OK. I've been compiling all day. I have one compile that's got over 9 hours of CPU time and is making no progress, and two more than have nearly 4 hours. I don't know what's going on - it's not even deterministic. The commands have so many options and defines that it took me a while to find a way to even figure out what they are working on. They are NOT huge complicated files. I don't know if two of these are the same as last time, because last time I didn't know how to get to the end of the command string. I'll put the file names here for documentary purposes - I'm going to INT it now because I'm not going to have a chance to work on this for a couple days. When I get back to it, my plan is to start it again without doing a make clean, and see where that leads me. In the mean time - I'm definitely open to suggestions!!!
Code:
mysql84-server/work/mysql-8.4.2/components/keyrings/common/component_helpers/src/keyring_log_builtins_definition.cc
mysql84-server/work/mysql-8.4.2/router/src/routing/src/sql_splitting_allowed.cc
mysql84-server/work/mysql-8.4.2/router/src/routing/src/classic_query_sender.cc

I don't suppose anyone would like to make the code change and cross-compile this for me? Native compilation is clearly not a good strategy at this point.
 
I'll try to remember that for next time. It didn't ask me this time, so I'm just letting it go. So it kept those settings somewhere that "make clean" doesn't touch. Which also brings up the question of how I would change them if I really wanted to... I'll do some digging.

OK. I've been compiling all day. I have one compile that's got over 9 hours of CPU time and is making no progress, and two more than have nearly 4 hours. I don't know what's going on - it's not even deterministic. The commands have so many options and defines that it took me a while to find a way to even figure out what they are working on. They are NOT huge complicated files. I don't know if two of these are the same as last time, because last time I didn't know how to get to the end of the command string. I'll put the file names here for documentary purposes - I'm going to INT it now because I'm not going to have a chance to work on this for a couple days. When I get back to it, my plan is to start it again without doing a make clean, and see where that leads me. In the mean time - I'm definitely open to suggestions!!!
Code:
mysql84-server/work/mysql-8.4.2/components/keyrings/common/component_helpers/src/keyring_log_builtins_definition.cc
mysql84-server/work/mysql-8.4.2/router/src/routing/src/sql_splitting_allowed.cc
mysql84-server/work/mysql-8.4.2/router/src/routing/src/classic_query_sender.cc

I don't suppose anyone would like to make the code change and cross-compile this for me? Native compilation is clearly not a good strategy at this point.
I'll try to build it on my honeycomb next monday or tuesday.
 
This is very kind- thank you - but I am still new to the ports environment - can you point me in the right direction for how to install and test this? I tried:
sh:
# pkg -R https://cocyte.westeurope.cloudapp.azure.com/mysql84-server/141aarch64-2024Q3/ install mysql84-server
Updating database digests format: 100%
pkg: No packages available to install matching 'mysql84-server' have been found in the repositories
I tried longer and longer forms of the package name, but all with the same result.
 

Try with http://

Try with
Code:
fetch https://cocyte.westeurope.cloudapp.azure.com/mysql84-server/141aarch64-2024Q3/All/mysql84-server-8.4.0_1.pkg
pkg install mysql84-server-8.4.0_1.pkg
 
Or you can add a repo:
mkdir -p /usr/local/etc/pkg/repos and add a file mysql.conf with this content:
mysql: {
url: "https://cocyte.westeurope.cloudapp.azure.com/mysql84-server/141aarch64-2024Q3/",
enabled: yes
}
 

Try with http://

Try with
Code:
fetch https://cocyte.westeurope.cloudapp.azure.com/mysql84-server/141aarch64-2024Q3/All/mysql84-server-8.4.0_1.pkg
pkg install mysql84-server-8.4.0_1.pkg
OK. This worked to install it. Hopefully have something interesting to say soon, but in the mean time, I still want to note somewhere that /var/db/mysql_tempdir and /var/db/mysql_secure are still getting created with the wrong owner (should be mysql:mysql I believe).
 
YES!!! Success! After cleaning out /var/db/mysql/* due to the failure because of the directory ownerships, mysqld made it all the way through initialization! I just connected to the database and did a show tables on mysql itself. I will now try to install my databases as a more complete test. What should my update to the PR look like? Three issues: the coding error you found, the ownership of /var/db/mysql_secure and the ownership of /var/db/mysql_tempdir.

Then - I suppose I'll go back to trying to figure out why I couldn't compile it natively! Note that I WAS able to compile and install htop after applying the fix for Bugzilla 280822 from /usr/ports on this same machine.
 
Well, I'm not getting very far. I need p5-DBD-mysql to run my code. When I try to install that, though, it wants to get rid of mysql84 and go all the way back to mysql80. Obviously, that's not really an option for me at this time. I am almost certain that it will run with the later versions of the database. Is there a way to force it? Or is the conflict an actual problem I have to resolve?
Code:
root@remo:/home/john # pkg install -M p5-DBD-mysql
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking integrity... done (1 conflicting)
  - mysql80-client-8.0.35 conflicts with mysql84-client-8.4.0 on /usr/local/bin/comp_err
Checking integrity... done (0 conflicting)
The following 4 package(s) will be affected (of 0 checked):

Installed packages to be REMOVED:
        mysql84-client: 8.4.0
        mysql84-server: 8.4.0_1

New packages to be INSTALLED:
        mysql80-client: 8.0.35
        p5-DBD-mysql: 5.005
 
The default MYSQL version is 8.0. Ports not explicitly set to other than 8.0 will be build to default version packages. If 8.4 is needed, set it in /etc/make.conf and build from ports.

Port individual
Code:
.if ${.CURDIR:M*/databases/p5-DBD-mysql}
MYSQL_DEFAULT=8.4
.endif

or global for all ports
Code:
DEFAULT_VERSIONS= mysql=8.4
 
Oops. I wrote a reply a couple of days ago, but I guess I never clicked "post". Thanks for the great info! I don't need 8.4 - I can use anything from 5.6.7 forward (I think). Unfortunately, my situation is that
1) When I try to compile a mysqld from ports, the compiler hangs. It's really strange.
2) All three mysl server versions in pkg have the bug
3) The only one that was compiled for me is 8.4
So - I need one of two things
1) someone to compile a mysql80-server for me with the bug patched
2) get native compile working on my own machine.
I tried to compile 8.0 and I got one hung compiler. I'm going to try to capture the full calling sequence (it's got a ton of options and defines) and see if I can reproduce the problem - or failing to reproduce it, get enough pieces compiled to link and install.
 
A lot has happened in the last few hours. Acheron was kind enough to compile 8.0.35 for me with the patch, and I was able to get that installed with pkg and get the p5-DBD-mysql pkg installed using that. I have created and populated my databases on that machine, and am able to run reports. On another machine, I got 8.0.39 to compile from ports by simply INTR the hung process and starting it again and I was also able to populate my databases and install the p5-DBD-mysql pkg there. Meanwhile, Mikael Urankar updated Bug 280165 with an attachment that has patches for 8.0, 8.1, and 8.4 (though I didn't see anything in his attachments that will fix the directory ownership problems for /var/db/mysql_secure and /var/db/mysql_tempdir).

I am pleased that I was able to compile 8.0.39 from ports on my own system by the simple act of INTR the hung processes and running the "make build" again, but I don't much like the fact that processes which should quickly to completion sometimes get stuck on my machine and can't complete. I will start another forum topic for that. I'd like to open a PR for it, but I don't feel like I have enough solid information yet to do so, so hopefully I'll get some suggestions that will narrow it down.

Thank you all for your great support. It's been a real learning experience for me, and I appreciate your patience and effort.
 
OK. Thanks. That makes my observations make sense. You kind of have to think "4th dimensionally" to keep track of all the versions and the time skews. When will the fix for the PMULL constant get committed to ports? I just pulled a new repo on the HEAD branch to do some research into the "stuck" compiler situation, and I noticed that the fix was not represented there. Will the permissions issue be back ported to 8.0 and 8.1?
 
Back
Top