LycheeOrg / Lychee

A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.
https://lycheeorg.github.io/
MIT License
3.32k stars 296 forks source link

Updating breaks Lychee #1192

Closed oblomow closed 2 years ago

oblomow commented 2 years ago

Detailed description of the problem

Updating breaks Lychee. ( thank $deity for backups and databasedumps)

Steps to reproduce the issue

Steps to reproduce the behavior:

  1. log on to (working) Lychee
  2. Click on 'update'
  3. After updating there is an error about missing admin in the database. please run: php artisan lychee:reset_admin
  4. Error page:database out of date.

Screenshots If applicable, add screenshots to help explain your problem.

Output of the diagnostics

Diagnostics

Info: Latest version of PHP is 8.1

System Information

Lychee Version (git): master (a7de020) - Up to date (13 hours ago). DB Version: 4.4.0

composer install: --no-dev APP_ENV: local APP_DEBUG: false

System: FreeBSD PHP Version: 8 PHP User agent: Lychee/4 (https://lycheeorg.github.io/) Max uploaded file size: 100M Max post size: 100M Max execution time: 0 MySQL Version: 8.0.27

Imagick: 1 Imagick Active: 1 Imagick Version: 1692 GD Version: 2.3.1

Config Information

version: 040400 check_for_updates: 1 sorting_Photos_col: taken_at sorting_Photos_order: ASC sorting_Albums_col: title sorting_Albums_order: DESC imagick: 1 skip_duplicates: 0 small_max_width: 0 small_max_height: 360 medium_max_width: 1920 medium_max_height: 1080 lang: en layout: 1 image_overlay_type: date default_license: none compression_quality: 90 full_photo: 1 delete_imported: 0 Mod_Frame: 1 Mod_Frame_refresh: 30 thumb_2x: 1 small_2x: 1 medium_2x: 1 landing_page_enable: 1 landing_owner: Marc landing_title: Marc landing_subtitle: Why stop now? landing_facebook: landing_flickr: landing_twitter: landing_instagram: landing_youtube: landing_background: dist/finland.jpg site_title: fotos site_copyright_enable: 1 site_copyright_begin: 1984 site_copyright_end: 2021 additional_footer_text:
display_social_in_gallery: 0 public_search: 0 SL_enable: 0 SL_for_admin: 0 public_recent: 0 recent_age: 1 public_starred: 0 downloadable: 0 photos_wraparound: 1 map_display: 0 zip64: 1 map_display_public: 0 map_provider: OpenStreetMap.org force_32bit_ids: 0 map_include_subalbums: 0 update_check_every_days: 3 has_exiftool: 1 share_button_visible: 0 import_via_symlink: 0 has_ffmpeg: 0 location_decoding: 0 location_decoding_timeout: 30 location_show: 0 location_show_public: 0 rss_enable: 0 rss_recent_days: 7 rss_max_items: 100 prefer_available_xmp_metadata: 0 editor_enabled: 1 lossless_optimization: 0 swipe_tolerance_x: 150 swipe_tolerance_y: 250 local_takestamp_video_formats: .avi|.mov log_max_num_line: 1000 unlock_password_photos_with_url_param: 0 nsfw_visible: 1 nsfw_blur: 0 nsfw_warning: 0 nsfw_warning_admin: 0 map_display_direction: 1 album_subtitle_type: oldstyle upload_processing_limit: 4 public_photos_hidden: 1 new_photos_notification: 0

Browser and system

Browser: Firefox 96.0

ildyria commented 2 years ago

Hi, Sorry for the break :(

Is there any way you can send us the dump of your database so we can figure out what is wrong ?

oblomow commented 2 years ago

Yes, I can send the database. Is it possible to create some kind of 'trace' for you while I rerun the update?

ildyria commented 2 years ago

I assume you did the migration via the UI, if so there is no possible trace.

However, if you have access to command line, you may want to try to run the update manually via: php artisan migrate This should also produce some kind of trace.

oblomow commented 2 years ago

Yes, I have command line access. (oh before I forget: no worries about the breaking. I really like Lychee, and these things can happen)

ildyria commented 2 years ago

This is also why this is only released on master and not an official release zip yet. :)

See more of the change log here: https://lycheeorg.github.io/docs/releases.html#master-branch

oblomow commented 2 years ago

sudo -u www php artisan migrate

Nothing to migrate.

ildyria commented 2 years ago

O.o

This does not match with your diagnostics: version: 040400

while it should be : https://github.com/LycheeOrg/Lychee/blob/32c374db4505bb44bf5b357ee952034ad271515c/database/migrations/2022_01_13_183131_bump_version040500.php#L15

oblomow commented 2 years ago

I have rolled back to a working system. But I guess you know that.

diagnostics still says:

Diagnostics
-------
Info: Latest version of PHP is 8.1

System Information
--------------
Lychee Version (git):            master (a7de020) - Up to date (14 hours ago).
DB Version:                      4.4.0

composer install:                --no-dev
APP_ENV:                         local
APP_DEBUG:                       false

System:                          FreeBSD
PHP Version:                     8
PHP User agent:                  Lychee/4 (https://lycheeorg.github.io/)
Max uploaded file size:          100M
Max post size:                   100M
Max execution time:              200
MySQL Version:                   8.0.27

Imagick:                         1
Imagick Active:                  1
Imagick Version:                 1692
GD Version:                      2.3.1
ildyria commented 2 years ago

hummmm. Not normal.

oblomow commented 2 years ago

if I run the update from the webinterface I get;

Diagnostics
-------
Error: User Admin not found in database. Please run: "php artisan lychee:reset_admin"
Info: Latest version of PHP is 8.1

2022-01-14 11_48_51-Error - Database File Versions mismatch

an if I press upgrade I get a 500| SERVER ERROR

oblomow commented 2 years ago

If I now run the command, I get:

sudo -u www php artisan migrate

Migrating: 2021_12_04_181200_refactor_models

In Connection.php line 705:

SQLSTATE[42S02]: Base table or view not found: 1051 Unknown table 'lychee.symlinks' (SQL: drop table `sym links`)

In Connection.php line 494:

SQLSTATE[42S02]: Base table or view not found: 1051 Unknown table 'lychee.sym_links'

ildyria commented 2 years ago

Error: User Admin not found in database. Please run: "php artisan lychee:reset_admin"

That is definitively NOT normal.

ildyria commented 2 years ago

in 4.4 there should be admin in the database.

oblomow commented 2 years ago

should there be a 'admin' user in the users-table?

there are 2 users there. id 0, wih a 'hashed' username and id 1 (a guest user)

ildyria commented 2 years ago

user with id 0 with hashed username is the admin user. That's why I don't understand why it is saying there is no admin.

oblomow commented 2 years ago

Is there anything else I can try or run to give you more insight? I am no php-programmer, but am familiar with bash and mysql.

ildyria commented 2 years ago

@nagmat84 :/

kamil4 commented 2 years ago

Honestly, I hate that whole "update from the webinterface" thing; if it works, it works, but if it fails, who knows why? Since you have the commandline access, can you do all of it that way please and send us the logs? That will be much more useful...

Basically, revert the Lychee tree to the last working state (I assume that's commit a7de020 for you; check with git log --oneline -1) with a corresponding working version of the database in place). I'm assuming your Lychee tree is clean (check with git status). Then run git pull --rebase and let's see the output of that...

oblomow commented 2 years ago

sudo -u www git log --oneline -1 a7de020 (HEAD -> master) Remove PHP7 leftovers (#1173)


sudo -u www git status Refresh index: 100% (650/650), done. On branch master Your branch is ahead of 'origin/master' by 69 commits. (use "git push" to publish your local commits)

Untracked files: (use "git add ..." to include in what will be committed) about.html public/dist/finland.jpg

nothing added to commit but untracked files present (use "git add" to track)


git pull --rebase remote: Enumerating objects: 5297, done. remote: Counting objects: 100% (5296/5296), done. remote: Compressing objects: 100% (1249/1249), done. remote: Total 5297 (delta 4050), reused 5162 (delta 3980), pack-reused 1 Receiving objects: 100% (5297/5297), 1.47 MiB | 8.27 MiB/s, done. Resolving deltas: 100% (4050/4050), completed with 151 local objects. From https://github.com/LycheeOrg/Lychee 376f8c7..32c374d master -> origin/master

Discovered Package: bepsvpt/secure-headers Discovered Package: darkghosthunter/larapass Discovered Package: fideloper/proxy Discovered Package: graham-campbell/markdown Discovered Package: livewire/livewire Discovered Package: lychee-org/nestedset Discovered Package: nesbot/carbon Discovered Package: spatie/laravel-feed Discovered Package: spatie/laravel-image-optimizer Package manifest generated successfully.

sh scripts/install_files.sh \n\033[38;5;011mcreating file for css personalization\033[0m touch public/dist/user.css \n\033[38;5;011mcreating default sqlite database\033[0m touch database/database.sqlite \n\033[38;5;011msetting up hooks for git pull and git commits\033[0m cp scripts/pre-commit .git/hooks/ cp scripts/post-merge .git/hooks/ \n\033[38;5;214mTo disable the call of composer and migration on pull add\033[0m \033[38;5;214ma file named '.NO_AUTO_COMPOSER_MIGRATE' in this directory.\033[0m\n 74 packages you are using are looking for funding. Use the composer fund command to find out more! php artisan migrate --force

Migrating: 2021_12_04_181200_refactor_models Info: Renaming existing tables Info: Creating new tables Info: Start copying ... Table 'users' 2/2 [============================] 100% Error: Model ID 2 - OutOfBoundsException - ID-based creation time is out of reasonable bounds Error: Model ID 3 - OutOfBoundsException - ID-based creation time is out of reasonable bounds Error: Model ID 9 - OutOfBoundsException - ID-based creation time is out of reasonable bounds Error: Model ID 11 - OutOfBoundsException - ID-based creation time is out of reasonable bounds Error: Model ID 17 - OutOfBoundsException - ID-based creation time is out of reasonable bounds Table 'albums' 145/145 [============================] 100% Table 'user_base_album' 1/137 [>---------------------------] 0%

In 2021_12_04_181200_refactor_models.php line 1116:

Undefined array key 15023691398618

\n\033[38;5;010mpost merge hook finish\033[0m\n

oblomow commented 2 years ago

after previous action :

image

resulting in:

image

ildyria commented 2 years ago

In 2021_12_04_181200_refactor_models.php line 1116:

Undefined array key 15023691398618

That is bad. That part there, that's why it is crashing.

nagmat84 commented 2 years ago

I might have an idea, why it fails, but it is a guess. Please follow the following steps again (sorry for your taking your time).

  1. Check out the last Lychee commit that did work for you and is the same as you made the DB backup with. (See @kami4 previous post
  2. Ensure that the GIT working copy is clean
  3. Restore your DB backup and ensure that it is working
  4. Pull the the update from master, i.e. git pull. (Don't run the migration yet).
  5. Re-cash you configuration via ./artisan optimize:clear && ./artisan config:cache && ./artisan optimize. This is extremely important. Background: We had some configuration changes in #1172 which ensure that the MySQL DB connection behaves deterministic regarding numeric IDs. Otherwise funny things might happen with a) a 32bit installation of MySQL on a 64bit platform and b) with 0 as an integer ID which is used by our admin user and which MySQL does not like by default. For efficiency reasons, Laravel compiles a shadow copy of all configuration options merged together. So after any upgrade which might change a configuration you must run ./artisan optimize:clear && ./artisan config:cache && ./artisan optimize otherwise you use an old configuration.
  6. Install the correct dependencies via composer install --no-dev. Background: We had to switch to our own fork of Nested Sets from lazychaser/laravel-nestedset to LycheeOrg/laravel-nestedset, because the original has some bugs regarding zero/null IDs.
  7. Now, run artisan migrate

If it still fails, then please provide me with a copy of your database. I am happy to help out. But I assume, that the problem stems from a missing step 5 or 6. An ID-related problem smells like that.

@ildyria Does the web installer ensures step 5 and 6? I am not sure about that.

ildyria commented 2 years ago

@ildyria Does the web installer ensures step 5 and 6? I am not sure about that.

  1. No.
  2. unsure.
kamil4 commented 2 years ago
  1. Isn't this only important if somebody ran the artisan optimize in the first place? Do we recommend anywhere in the docs that people do?

  2. We run it in the post-merge hook:

        composer install --no-dev --prefer-dist --no-suggest
kamil4 commented 2 years ago

@oblomow Can you check if you have an album with id 15023691398618 in your database at all (in the albums table)? Based on some of the preceding messages it looks like you've modified things manually in the past so it could be that your database is simply inconsistent. If that's the case, you may need to remove the offending entry from user_album table prior to update (it will be the one with album_id = 15023691398618).

nagmat84 commented 2 years ago

Isn't this only important if somebody ran the artisan optimize in the first place? Do we recommend anywhere in the docs that people do?

No, it isn't. artisan optimize only primes the cache. If you don't do it manually, Laravel will do it per request on a as-needed basis. artisan optimize only helps to mitigate some delay during the first couple of request until the cache is built. But then the cache is there. After an upgrade you need to clear it.

The important part is actually ./artisan optimize:clear && ./artisan config:clear. The third part is optional.

oblomow commented 2 years ago

@kamil4 select * from albums where id=15023691398618 \G Empty set (0.00 sec)

kamil4 commented 2 years ago

@oblomow As I suspected. So now do this (on a DB instance before updating to the latest version):

delete from user_album where album_id = 15023691398618;

Hopefully that's the only such offender, but if not, you may need to do it repeatedly for the album IDs that fail...

oblomow commented 2 years ago

sudo -u www git pull remote: Enumerating objects: 5297, done. remote: Counting objects: 100% (5296/5296), done. remote: Compressing objects: 100% (1249/1249), done. remote: Total 5297 (delta 4050), reused 5162 (delta 3980), pack-reused 1 Receiving objects: 100% (5297/5297), 1.47 MiB | 12.65 MiB/s, done. Resolving deltas: 100% (4050/4050), completed with 151 local objects. From https://github.com/LycheeOrg/Lychee 376f8c7..32c374d master -> origin/master

Discovered Package: bepsvpt/secure-headers Discovered Package: darkghosthunter/larapass Discovered Package: fideloper/proxy Discovered Package: graham-campbell/markdown Discovered Package: livewire/livewire Discovered Package: lychee-org/nestedset Discovered Package: nesbot/carbon Discovered Package: spatie/laravel-feed Discovered Package: spatie/laravel-image-optimizer Package manifest generated successfully.

sh scripts/install_files.sh \n\033[38;5;011mcreating file for css personalization\033[0m touch public/dist/user.css \n\033[38;5;011mcreating default sqlite database\033[0m touch database/database.sqlite \n\033[38;5;011msetting up hooks for git pull and git commits\033[0m cp scripts/pre-commit .git/hooks/ cp scripts/post-merge .git/hooks/ \n\033[38;5;214mTo disable the call of composer and migration on pull add\033[0m \033[38;5;214ma file named '.NO_AUTO_COMPOSER_MIGRATE' in this directory.\033[0m\n 74 packages you are using are looking for funding. Use the composer fund command to find out more! php artisan migrate --force

Migrating: 2021_12_04_181200_refactor_models Info: Renaming existing tables Info: Creating new tables Info: Start copying ... Table 'users' 2/2 [============================] 100% Error: Model ID 2 - OutOfBoundsException - ID-based creation time is out of reasonable bounds Error: Model ID 3 - OutOfBoundsException - ID-based creation time is out of reasonable bounds Error: Model ID 9 - OutOfBoundsException - ID-based creation time is out of reasonable bounds Error: Model ID 11 - OutOfBoundsException - ID-based creation time is out of reasonable bounds Error: Model ID 17 - OutOfBoundsException - ID-based creation time is out of reasonable bounds Table 'albums' 145/145 [============================] 100% Table 'user_base_album' 83/137 [================>-----------] 60%

In 2021_12_04_181200_refactor_models.php line 1116:

Undefined array key 15023691398618

\n\033[38;5;010mpost merge hook finish\033[0m\n

oblomow commented 2 years ago

@oblomow As I suspected. So now do this (on a DB instance before updating to the latest version):

delete from user_album where album_id = 15023691398618;

Hopefully that's the only such offender, but if not, you may need to do it repeatedly for the album IDs that fail...

will do that. I will first restore the working situation.

kamil4 commented 2 years ago

OK! If it fails again, you can post just the last few lines of the log at this point (starting with Migrating: 2021_12_04_181200_refactor_models).

nagmat84 commented 2 years ago

Hopefully that's the only such offender, but if not, you may need to do it repeatedly for the album IDs that fail...

In order to avoid repeating the migration several times, you could also run a SQL query like this within your SQL console:

SELECT * FROM user_album WHERE album_id NOT IN (SELECT id FROM albums);

This will give you all orphaned sharing entries between users and albums for albums which do not exist. To be on the safe side you may also check

SELECT * FROM user_album WHERE user_id NOT IN (SELECT id FROM users);
SELECT * FROM albums WHERE cover_id NOT IN (SELECT id FROM photos);
SELECT * FROM photos WHERE album_id NOT IN (SELECT id FROM albums);
SELECT * FROM albums WHERE owner_id NOT IN (SELECT id FROM users);
SELECT * FROM photos WHERE owner_id NOT IN (SELECT id FROM users);

That are all foreign key constraints I remember.

nagmat84 commented 2 years ago

It seems that there are more users than I expected which fiddled with their database manually and - as we had no foreign constraints until now - broke it. Given my previous post, I start working on an improved version of the migration which first checks, whether there are any inconsistencies and which will terminate the migration with an error if it finds inconsistencies.

kamil4 commented 2 years ago

@nagmat84 It makes me wonder if we should add such sanity check to the DB migration file and either delete the offenders or bail out early before leaving the DB in an (even more) inconsistent state?

ildyria commented 2 years ago

@kamil4 this should be added in the Diagnostic page.

oblomow commented 2 years ago

It seems that there are more users than I expected which fiddled with their database manually and - as we had no foreign constraints until now - broke it. Given my previous post, I start working on an improved version of the migration which first checks, whether there are any inconsistencies and which will terminate the migration with an error if it finds inconsistencies.

I never fiddled with my database. However I am a long term Lychee user, enduring many updates, upgrades and migrations. Perhaps migrating to the 'new' Lychee introduced an error.

nagmat84 commented 2 years ago

@nagmat84 It makes me wonder if we should add such sanity check to the DB migration file and either delete the offenders or bail out early before leaving the DB in an (even more) inconsistent state?

I assume our posts were written simultaneously. See here. I am already on it. Give me 15min.

oblomow commented 2 years ago

SELECT * FROM user_album WHERE album_id NOT IN (SELECT id FROM albums); +----+----------------+---------+ | id | album_id | user_id | +----+----------------+---------+ | 91 | 15023691398618 | 1 | +----+----------------+---------+ 1 row in set (0.00 sec)

ildyria commented 2 years ago

No, but it is quite possible you shared album with id 15023691398618 to user 1, and then deleted said album and the database did not update.

oblomow commented 2 years ago

the last update didn't crash it. Thanks guys for all your quick support! If you're in the neighbourhood and the pubs are open again I will you buy you a beer!

Diagnostics
-------
Info: Latest version of PHP is 8.1

System Information
--------------
Lychee Version (git):            master (32c374d) - Probably more than 30 commits behind master
DB Version:                      4.5.0

composer install:                --no-dev
APP_ENV:                         local
APP_DEBUG:                       false

System:                          FreeBSD
PHP Version:                     8
PHP User agent:                  Lychee/4 (https://lycheeorg.github.io/)
Max uploaded file size:          100M
Max post size:                   100M
Max execution time:              200
MySQL Version:                   8.0.27

Imagick:                         1
Imagick Active:                  1
Imagick Version:                 1692
GD Version:                      2.3.1
kamil4 commented 2 years ago

I think @ildyria is in Nijmegen. The rest of us are all over the world :smiley:.

Glad to hear it worked!

oblomow commented 2 years ago

HA! That's easy. I'm in Nijmegen as well.

kamil4 commented 2 years ago

@oblomow Out of curiousity how old is your DB instance? I'm wondering about those album IDs like 2, 3, etc. I've seen them like that on screenshots from early versions of Lychee but I've never experienced them myself (and I started with a 3.x version).

@ildyria Don't we have some DB magic in place that deletes said records form user_album when either the user or the album are deleted?

oblomow commented 2 years ago

@kamil4 I don't know. Quite old. That's for sure. If you really want to know, I can start digging.

nagmat84 commented 2 years ago

@ildyria Don't we have some DB magic in place that deletes said records form user_album when either the user or the album are deleted?

I am not ildyria, but no, we had not. This was also fixed with my huge PR. Before that there was a comment which said basically something like "oh, oh, I wonder what happens with the albums owned by this user" above the line which deleted a user.

I think, we know the answer.

kamil4 commented 2 years ago

@oblomow No worries, don't bother. I simply thought at first that you generated those short IDs while manually editing the database but when you denied I remembered that I've seen such short album IDs before -- on our home page no less!

We really should regenerate our screenshots -- what we have there is museum-grade at this point :wink:. They are pretty pictures though...

ildyria commented 2 years ago

@oblomow then you should know that there bar and restaurants are still closed. :'D

oblomow commented 2 years ago

@ildyria " If you're in the neighbourhood and the pubs are open again I will you buy you a beer!"

ildyria commented 2 years ago

read too fast.

gdureuil commented 2 years ago

Sorry to rain on you parade, but I have the exact same problem while trying to update today. I'm comming from the exact same git revision. I read this whole thread, but have no orphaned album entries.

My install is also very old, comming from before the fork (version 2.x maybe ?) and switch to laravel.

The query SELECT * FROM user_album WHERE album_id NOT IN (SELECT id FROM albums); gives no result.

Here are my diagnostic, and git pull output.

`

Diagnostics
-------
Warning: Dropbox import not working. dropbox_key is empty.
Warning: lossless_optimization set to 1 but cwebp not found!
Warning: lossless_optimization set to 1 but svgo not found!
Warning: You may experience problems when uploading a photo of large size or handling many/large albums. Take a look in the FAQ for details.
Info: Latest version of PHP is 8.1

System Information
--------------
Lychee Version (git):            master (a7de020) - Data not in Cache
DB Version:                      4.4.0

composer install:                --no-dev
APP_ENV:                         local
APP_DEBUG:                       false

System:                          Linux
PHP Version:                     8
PHP User agent:                  Lychee/4 (https://lycheeorg.github.io/)
Max uploaded file size:          100M
Max post size:                   100M
Max execution time:              60
MySQL Version:                   10.3.31-MariaDB-0+deb10u1-log

Imagick:                         1
Imagick Active:                  1
Imagick Version:                 1690
GD Version:                      2.2.5

Config Information
--------------
version:                         040400
check_for_updates:               0
sorting_Photos_col:              title
sorting_Photos_order:            ASC
sorting_Albums_col:              title
sorting_Albums_order:            ASC
imagick:                         1
skip_duplicates:                 1
small_max_width:                 0
small_max_height:                360
medium_max_width:                1920
medium_max_height:               1080
lang:                            fr
layout:                          0
image_overlay_type:              none
default_license:                 none
compression_quality:             90
full_photo:                      1
delete_imported:                 0
Mod_Frame:                       1
Mod_Frame_refresh:               30
thumb_2x:                        1
small_2x:                        1
medium_2x:                       1
landing_page_enable:             0
landing_owner:                   
landing_title:                   
landing_subtitle:                
landing_facebook:                
landing_flickr:                  
landing_twitter:                 
landing_instagram:               
landing_youtube:                 
landing_background:              
site_title:                      BakaGamer - Screenshots
site_copyright_enable:           0
site_copyright_begin:            2010
site_copyright_end:              2021
additional_footer_text:          
display_social_in_gallery:       0
public_search:                   0
SL_enable:                       0
SL_for_admin:                    0
public_recent:                   0
recent_age:                      1
public_starred:                  0
downloadable:                    0
photos_wraparound:               1
map_display:                     0
zip64:                           1
map_display_public:              0
map_provider:                    Wikimedia
force_32bit_ids:                 0
map_include_subalbums:           0
update_check_every_days:         3
has_exiftool:                    0
share_button_visible:            0
import_via_symlink:              0
has_ffmpeg:                      1
location_decoding:               0
location_decoding_timeout:       30
location_show:                   0
location_show_public:            0
rss_enable:                      0
rss_recent_days:                 7
rss_max_items:                   100
prefer_available_xmp_metadata:   0
editor_enabled:                  1
lossless_optimization:           1
swipe_tolerance_x:               150
swipe_tolerance_y:               250
local_takestamp_video_formats:   .avi|.mov
log_max_num_line:                1000
unlock_password_photos_with_url_param: 0
nsfw_visible:                    1
nsfw_blur:                       0
nsfw_warning:                    1
nsfw_warning_admin:              0
map_display_direction:           1
album_subtitle_type:             oldstyle
upload_processing_limit:         3
public_photos_hidden:            1
new_photos_notification:         0`

`git pull --rebase warning: redirecting to https://github.com/LycheeOrg/Lychee.git/ remote: Enumerating objects: 599, done. remote: Counting objects: 100% (599/599), done. remote: Compressing objects: 100% (188/188), done. remote: Total 599 (delta 437), reused 545 (delta 407), pack-reused 0 Receiving objects: 100% (599/599), 433.65 KiB | 5.49 MiB/s, done. Resolving deltas: 100% (437/437), completed with 126 local objects. From https://www.github.com/LycheeOrg/Lychee a7de0208..49fd7691 master -> origin/master de78bd70..633b4c65 consistent_json_api -> origin/consistent_json_api

post merge hook start

--no-dev mode detected

composer install --no-dev --prefer-dist --no-suggest PHP Deprecated: Required parameter $path follows optional parameter $schema in /usr/share/php/JsonSchema/Constraints/UndefinedConstraint.php on line 62

Deprecated: Required parameter $path follows optional parameter $schema in /usr/share/php/JsonSchema/Constraints/UndefinedConstraint.php on line 62 PHP Deprecated: Required parameter $path follows optional parameter $schema in /usr/share/php/JsonSchema/Constraints/UndefinedConstraint.php on line 108

Deprecated: Required parameter $path follows optional parameter $schema in /usr/share/php/JsonSchema/Constraints/UndefinedConstraint.php on line 108 Deprecation Notice: Method ReflectionParameter::getClass() is deprecated in /usr/share/php/Composer/Repository/RepositoryManager.php:130 Deprecation Notice: Method ReflectionParameter::getClass() is deprecated in /usr/share/php/Composer/Repository/RepositoryManager.php:130 Deprecation Notice: Method ReflectionParameter::getClass() is deprecated in /usr/share/php/Composer/Repository/RepositoryManager.php:130 Do not run Composer as root/super user! See https://getcomposer.org/root for details Loading composer repositories with package information Installing dependencies from lock file PHP Fatal error: Uncaught ArgumentCountError: array_merge() does not accept unknown named parameters in /usr/share/php/Composer/DependencyResolver/DefaultPolicy.php:84 Stack trace:

0 [internal function]: array_merge()

1 /usr/share/php/Composer/DependencyResolver/DefaultPolicy.php(84): call_user_func_array()

2 /usr/share/php/Composer/DependencyResolver/Solver.php(387): Composer\DependencyResolver\DefaultPolicy->selectPreferredPackages()

3 /usr/share/php/Composer/DependencyResolver/Solver.php(742): Composer\DependencyResolver\Solver->selectAndInstall()

4 /usr/share/php/Composer/DependencyResolver/Solver.php(231): Composer\DependencyResolver\Solver->runSat()

5 /usr/share/php/Composer/Installer.php(475): Composer\DependencyResolver\Solver->solve()

6 /usr/share/php/Composer/Installer.php(229): Composer\Installer->doInstall()

7 /usr/share/php/Composer/Command/InstallCommand.php(121): Composer\Installer->run()

8 /usr/share/php/Symfony/Component/Console/Command/Command.php(255): Composer\Command\InstallCommand->execute()

9 /usr/share/php/Symfony/Component/Console/Application.php(953): Symfony\Component\Console\Command\Command->run()

10 /usr/share/php/Symfony/Component/Console/Application.php(248): Symfony\Component\Console\Application->doRunCommand()

11 /usr/share/php/Composer/Console/Application.php(258): Symfony\Component\Console\Application->doRun()

12 /usr/share/php/Symfony/Component/Console/Application.php(148): Composer\Console\Application->doRun()

13 /usr/share/php/Composer/Console/Application.php(104): Symfony\Component\Console\Application->run()

14 /usr/bin/composer(57): Composer\Console\Application->run()

15 {main}

thrown in /usr/share/php/Composer/DependencyResolver/DefaultPolicy.php on line 84

Fatal error: Uncaught ArgumentCountError: array_merge() does not accept unknown named parameters in /usr/share/php/Composer/DependencyResolver/DefaultPolicy.php:84 Stack trace:

0 [internal function]: array_merge()

1 /usr/share/php/Composer/DependencyResolver/DefaultPolicy.php(84): call_user_func_array()

2 /usr/share/php/Composer/DependencyResolver/Solver.php(387): Composer\DependencyResolver\DefaultPolicy->selectPreferredPackages()

3 /usr/share/php/Composer/DependencyResolver/Solver.php(742): Composer\DependencyResolver\Solver->selectAndInstall()

4 /usr/share/php/Composer/DependencyResolver/Solver.php(231): Composer\DependencyResolver\Solver->runSat()

5 /usr/share/php/Composer/Installer.php(475): Composer\DependencyResolver\Solver->solve()

6 /usr/share/php/Composer/Installer.php(229): Composer\Installer->doInstall()

7 /usr/share/php/Composer/Command/InstallCommand.php(121): Composer\Installer->run()

8 /usr/share/php/Symfony/Component/Console/Command/Command.php(255): Composer\Command\InstallCommand->execute()

9 /usr/share/php/Symfony/Component/Console/Application.php(953): Symfony\Component\Console\Command\Command->run()

10 /usr/share/php/Symfony/Component/Console/Application.php(248): Symfony\Component\Console\Application->doRunCommand()

11 /usr/share/php/Composer/Console/Application.php(258): Symfony\Component\Console\Application->doRun()

12 /usr/share/php/Symfony/Component/Console/Application.php(148): Composer\Console\Application->doRun()

13 /usr/share/php/Composer/Console/Application.php(104): Symfony\Component\Console\Application->run()

14 /usr/bin/composer(57): Composer\Console\Application->run()

15 {main}

thrown in /usr/share/php/Composer/DependencyResolver/DefaultPolicy.php on line 84 php artisan migrate --force

In 2021_12_04_181200_refactor_models.php line 2076:

Interface "Kalnoy\Nestedset\Node" not found

post merge hook finish

Current branch master is up to date.`