# mysql57-server upgrade fails



## ICSRunningFool (Aug 1, 2018)

Periodically I do a portsnap fetch update, portupgrade -a.
This time an upgrade to mysql57-server-5.7.22_2 to5.7.22_3 failed with a linker error. 
If I look at the log files it looks like the failing error is:
pfs_instr.cc.text+0x1247): undefined reference to `__atomic_fetch_add_8'

Currently running 11.2-RELEASE

Confused, where do I go from here ?


----------



## ShelLuser (Aug 1, 2018)

First issue: why build ports in the first place? Do you have any specific need for that (changed settings or such)? Because if you don't then it might be easier to simply rely on binary packages. So: sorting everything out with the pkg command (`# pkg upgrade`).

Second: does /usr/ports/UPDATING mean anything to you? Failure to follow up on that document and perform the actions as listed is often the cause for port builds to go haywire.

Just in case: do you mix ports and packages by any chance? That too could be a possible cause.

When all else fails you could try building the port in a jail. This will ensure that you're working with a clean environment and that can make a difference sometimes.


----------



## ICSRunningFool (Aug 2, 2018)

ShelLuser,
Been to both places first which is why I came here looking for assistance. 

pkg upgrade does not list the mysql57-server update as a possible upgrade when it is run.

Looked in the UPDATING and could not see anything related to mysql57-server or the associated linker error atomic_...  not found. Google gave me some information that leads me to believe that atomic is C++ mechanism to insulate against hardware differences. The computer that I am running this on is NOT a 64 bit computer so I am suspicious, but this has been running for a long time.

Since this update just recently came out, surely I am not the only one with the problem.

Allan


----------



## SirDice (Aug 2, 2018)

ICSRunningFool said:


> pkg upgrade does not list the mysql57-server update as a possible upgrade when it is run.


I suspect you still have the default quarterly repository set. Which should be fine for most people. But if you want to keep it more in line with the current ports tree you may want to switch to the latest package repository instead. If this is a production server you may want to leave it at the quarterly repository though. It has a much lower churn rate but does get security and/or stability fixes.


----------



## ShelLuser (Aug 2, 2018)

ICSRunningFool said:


> Been to both places first which is why I came here looking for assistance.


Does this mean you might have started mixing ports and packages? Because that can definitely become a disruptive factor over time.



ICSRunningFool said:


> pkg upgrade does not list the mysql57-server update as a possible upgrade when it is run.


Maybe not upgrade, but what about search?


```
root@psi:~ # grep url /etc/pkg/FreeBSD.conf
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly",
root@psi:~ # pkg search mysql57
mysql57-client-5.7.22_1        Multithreaded SQL database (client)
mysql57-server-5.7.22_2        Multithreaded SQL database (server)
```
See? It's most definitely available. Running upgrade out of the blue doesn't have to work because if you run a more recent version then there's obviously nothing to upgrade. What you could consider doing is to force the upgrade for all your installed packages. This will replace everything with binary packages after which you wouldn't have to worry too much about building.

See also pkg-upgrade(8).


----------



## ICSRunningFool (Aug 2, 2018)

should have stuck to the ports, pkg upgrade, upgraded mysql57-server but killed the website. Downgraded php to 56 from 70. Got some debugging todo. Thanx for all the help - Allan


----------



## ShelLuser (Aug 2, 2018)

Errr, pkg clearly tells you up front what it is going to do. You could also have used --dry-run or -n to verify the action(s) it was about to take.

Sorry to talk after the facts but this is something you could have seen coming. I mean... this also implies that you added DEFAULT_VERSIONS+= php=7.0 to /etc/make.conf, something you wouldn't need to overrule if you'd actually use the systems default.

_Never_ blindly follow up on commands you find on the Net without checking what they actually do.

Alas, you mentioned Portupgrade. Check if it kept backup packages. Portmaster pretty much does this by default (iirc) so that you'll always have backups in /usr/ports/packages. Definitely worth checking out I supose.


----------



## ICSRunningFool (Aug 3, 2018)

Ok I got things back up. Simply reinstalled all of the php requirements for Joomla that had got purged. Thank You for the help, learned a bunch. Did not know about the make.conf file. I don't have time at the moment, but it could be why I was having trouble with the mysql57-server update in the first place.


----------

