Tuesday, March 10, 2020, 1:33:13 AM, Rowan Worth <row...@dug.com> wrote:
> On Mon, 9 Mar 2020 at 23:22, Daniel Polski <dan...@agelektronik.se> wrote: >> Updated to 3.31.1 but my application started spitting out an error when >> opening the database, so I tested some earlier sqlite versions to figure >> out when the problem starts. >> I don't get the message in versions <= 3.30.1. >> >> (from the applications log) >> SQLite Version: 3.31.0 >> INFO: Database opened: /tmp/database.sqlite >> WARNING: SQLITE error code: 14 cannot open file at line 36982 of >> [3bfa9cc97d] >> WARNING: SQLITE error code: 14 os_unix.c:36982: (40) openDirectory(/tmp) - >> > errno 40 is ELOOP, "Too many symbolic links encountered". open(2) says: > ELOOP Too many symbolic links were encountered in resolving > pathname, or O_NOFOLLOW was > specified but pathname was a symbolic link. > Is your /tmp/ a symlink? Sqlite seems to use O_NOFOLLOW unconditionally in > openDirectory() since this checkin: > https://www.sqlite.org/src/info/6a64fb6a2da6c98f > Probably a bug? The changelog for sqlite 3.31.0 include this which is > likely related: > - * Add the SQLITE_OPEN_NOFOLLOW > <https://www.sqlite.org/c3ref/open.html#opennofollow> option to > sqlite3_open_v2() <https://www.sqlite.org/c3ref/open.html> that prevents > SQLite from opening symbolic links. Assuming /tmp IS a symlink, then since it's the parent directory of the SQLite file that openDirectory fails on, I would hazard a wild guess that this has something to do with SQLite's handling of journal files, about which that above check-in comment notes "O_NOFOLLOW is always included in open() system calls for journal files". Graham Holden (There were an earlier pair of emails to the list on 13th Feb this year where use of O_NOFOLLOW was triggering ELOOP, but I suspect that wasn't directly related as the problem there was "protection" code in SQLite that was opening /dev/null was failing because /dev/null under Solaris was itself a symbolic link (see https://www.sqlite.org/src/timeline?c=0c683c43a62fe25c) _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users