r-dbi / RMariaDB

An R interface to MariaDB
https://rmariadb.r-dbi.org
Other
129 stars 40 forks source link

1.3.2 build fails #336

Closed BillWeld closed 3 weeks ago

BillWeld commented 3 months ago

Please briefly describe your problem and what output you expect. If you have a question, please don't use this form. Instead, ask on https://stackoverflow.com/ or https://community.rstudio.com/.

Please include a minimal reproducible example (AKA a reprex). If you've never heard of a reprex before, start by reading https://www.tidyverse.org/help/#reprex.


Session log attached.

# insert reprex here

RMariaDB.txt

krlmlr commented 3 months ago

Thanks, interesting. What version of the client libraries are you compiling against? Are you able to run devtools::install_github() to troubleshoot?

BillWeld commented 3 months ago

Thanks! Yes, I have devtools. I'm getting the previous version of RMariaDB with install_version(). I think you mean which MySQL client libraries.

Update: I can build the latest tagged version prior to 1.3.2. This works:

install_github(repo = "r-dbi/RMariaDB", ref = "v1.3.1.9000", upgrade = "never")

# rpm -qa| grep -i mariadb
mariadb-5.5.68-1.amzn2.0.1.aarch64
mariadb-devel-5.5.68-1.amzn2.0.1.aarch64
mariadb-server-5.5.68-1.amzn2.0.1.aarch64
mariadb-libs-5.5.68-1.amzn2.0.1.aarch64

# rpm -ql mariadb-libs
/etc/ld.so.conf.d/mariadb-aarch64.conf
/etc/my.cnf
/etc/my.cnf.d
/etc/my.cnf.d/mysql-clients.cnf
/usr/lib64/mysql
/usr/lib64/mysql/libmysqlclient.so.18
/usr/lib64/mysql/libmysqlclient.so.18.0.0
/usr/lib64/mysql/plugin/dialog.so
/usr/lib64/mysql/plugin/mysql_clear_password.so
/usr/share/doc/mariadb-libs-5.5.68
/usr/share/doc/mariadb-libs-5.5.68/COPYING
/usr/share/doc/mariadb-libs-5.5.68/COPYING.Google
/usr/share/doc/mariadb-libs-5.5.68/COPYING.Percona
/usr/share/doc/mariadb-libs-5.5.68/README
/usr/share/doc/mariadb-libs-5.5.68/README.mysql-license
/usr/share/mysql
/usr/share/mysql/charsets
/usr/share/mysql/charsets/Index.xml
/usr/share/mysql/charsets/README
/usr/share/mysql/charsets/armscii8.xml
/usr/share/mysql/charsets/ascii.xml
/usr/share/mysql/charsets/cp1250.xml
/usr/share/mysql/charsets/cp1251.xml
/usr/share/mysql/charsets/cp1256.xml
/usr/share/mysql/charsets/cp1257.xml
/usr/share/mysql/charsets/cp850.xml
/usr/share/mysql/charsets/cp852.xml
/usr/share/mysql/charsets/cp866.xml
/usr/share/mysql/charsets/dec8.xml
/usr/share/mysql/charsets/geostd8.xml
/usr/share/mysql/charsets/greek.xml
/usr/share/mysql/charsets/hebrew.xml
/usr/share/mysql/charsets/hp8.xml
/usr/share/mysql/charsets/keybcs2.xml
/usr/share/mysql/charsets/koi8r.xml
/usr/share/mysql/charsets/koi8u.xml
/usr/share/mysql/charsets/latin1.xml
/usr/share/mysql/charsets/latin2.xml
/usr/share/mysql/charsets/latin5.xml
/usr/share/mysql/charsets/latin7.xml
/usr/share/mysql/charsets/macce.xml
/usr/share/mysql/charsets/macroman.xml
/usr/share/mysql/charsets/swe7.xml
/usr/share/mysql/czech
/usr/share/mysql/czech/errmsg.sys
/usr/share/mysql/danish
/usr/share/mysql/danish/errmsg.sys
/usr/share/mysql/dutch
/usr/share/mysql/dutch/errmsg.sys
/usr/share/mysql/english
/usr/share/mysql/english/errmsg.sys
/usr/share/mysql/estonian
/usr/share/mysql/estonian/errmsg.sys
/usr/share/mysql/french
/usr/share/mysql/french/errmsg.sys
/usr/share/mysql/german
/usr/share/mysql/german/errmsg.sys
/usr/share/mysql/greek
/usr/share/mysql/greek/errmsg.sys
/usr/share/mysql/hungarian
/usr/share/mysql/hungarian/errmsg.sys
/usr/share/mysql/italian
/usr/share/mysql/italian/errmsg.sys
/usr/share/mysql/japanese
/usr/share/mysql/japanese/errmsg.sys
/usr/share/mysql/korean
/usr/share/mysql/korean/errmsg.sys
/usr/share/mysql/norwegian
/usr/share/mysql/norwegian-ny
/usr/share/mysql/norwegian-ny/errmsg.sys
/usr/share/mysql/norwegian/errmsg.sys
/usr/share/mysql/polish
/usr/share/mysql/polish/errmsg.sys
/usr/share/mysql/portuguese
/usr/share/mysql/portuguese/errmsg.sys
/usr/share/mysql/romanian
/usr/share/mysql/romanian/errmsg.sys
/usr/share/mysql/russian
/usr/share/mysql/russian/errmsg.sys
/usr/share/mysql/serbian
/usr/share/mysql/serbian/errmsg.sys
/usr/share/mysql/slovak
/usr/share/mysql/slovak/errmsg.sys
/usr/share/mysql/spanish
/usr/share/mysql/spanish/errmsg.sys
/usr/share/mysql/swedish
/usr/share/mysql/swedish/errmsg.sys
/usr/share/mysql/ukrainian
/usr/share/mysql/ukrainian/errmsg.sys
krlmlr commented 3 months ago

Thank you for your patience. If this is still an issue, could you test v1.3.1.9004, then v1.3.1.9002 or v1.3.1.9006, ..., to identify where the regression occurred?

BillWeld commented 3 months ago

v1.3.1.9000 is the latest tag that builds without error. Here’s the log from the earliest one that fails.

Thanks, Rob

remotes::install_github(

  • repo = "r-dbi/RMariaDB",
  • ref = "v1.3.1.9001",
  • lib = "~/R",
  • upgrade = "never",
  • force = TRUE
  • )
  • Downloading GitHub repo @.*** -- R CMD build ------------------------------------------------------------------------------------------------------------------------------------- v checking for file '/tmp/RtmpIbXsV6/remotes72e02dff314f/r-dbi-RMariaDB-420fa50/DESCRIPTION'
  • preparing 'RMariaDB': v checking DESCRIPTION meta-information
  • cleaning src
  • running 'cleanup'
  • checking for LF line-endings in source and make files and shell scripts
  • checking for empty or unneeded directories Removed empty directory 'RMariaDB/.aviator'
  • building 'RMariaDB_1.3.1.9001.tar.gz'

Enter a frame number, or 0 to exit

1: remotes::install_github(repo = "r-dbi/RMariaDB", ref = "v1.3.1.9001", lib = "~/R", upgrade = "never", force = TRUE) 2: install_remotes(remotes, auth_token = auth_token, host = host, dependencies = dependencies, upgrade = upgrade, force = force, quiet = quiet, bu 3: tryCatch(res[[i]] <- install_remote(remotes[[i]], ...), error = function(e) { stop(remote_install_error(remotes[[i]], e)) }) 4: tryCatchList(expr, classes, parentenv, handlers) 5: tryCatchOne(expr, names, parentenv, handlers[[1]]) 6: value[3]

Selection:

krlmlr commented 3 months ago

Thanks. Any chance you could upgrade your client libraries? The first 5.7 release appeared in early 2013, with EOL presumed 2023, according to https://dev.mysql.com/doc/relnotes/mysql/5.7/en/ . The version 5.5 that seems to be installed on your system must be even older than that.

@d-hansen: You helped with SSL issues before. Do you think it's worth supporting libmysql 5.5?

d-hansen commented 3 months ago

Uh... No, I do not think it's worth supporting libmysql 5.5:

MySQL 5.5 was released in December 2010 and reached end of life on December 31, 2015.

It has been EOL'd for 9 years now!!

However, I think you meant supporting MariaDB 5.5 - which we should most definitely continue supporting for a bit. I will look into what's going on and perhaps make a PR.

krlmlr commented 3 months ago

Yes, my bad -- somehow I made the association 5.5 ==> MySQL.

Thank you very much!

d-hansen commented 3 months ago

Well, that's not a bad association as MariaDB 5.5 is effectively built on MySQL 5.5 (plus some "enhancements"). I guess my logic is that MariaDB 5.5 was still being actively maintained up until 2020. So, that's a little more recent than MySQL 5.5. It's also still available as the default MariaDB installed on AL2 (hence my opinion on why we should try to support it).

I would highly recommend anyone still using MariaDB 5.5 to pro-actively move to 10.x. Any new CVE's are not going to be patched (unless Amazon does it).

Here is the MariaDB upgrade guide: https://mariadb.com/kb/en/upgrading-from-mariadb-55-to-mariadb-100/

Working on a PR now. We'll see how intrusive it ends up being.