Seafile server 6.2.0 beta is ready for testing!

Hello everybody,

6.1.2 to 6.2.1 failed to upgrade SQLlite DB for me :’(
[seafile@birdie upgrade]$ sh upgrade_6.1_6.2.sh


This script would upgrade your seafile server from 6.1 to 6.2
Press [ENTER] to contiune

Updating seafile/seahub database …

[INFO] You are using SQLite3
[INFO] updating seahub database…
Traceback (most recent call last):
File “/home/sites/teufou.net/seafile/seafile-server-6.2.1/upgrade/db_update_helper.py”, line 363, in
main()
File “/home/sites/teufou.net/seafile/seafile-server-6.2.1/upgrade/db_update_helper.py”, line 358, in main
db_updater.update_db()
File “/home/sites/teufou.net/seafile/seafile-server-6.2.1/upgrade/db_update_helper.py”, line 259, in update_db
super(SQLiteDBUpdater, self).update_db()
File “/home/sites/teufou.net/seafile/seafile-server-6.2.1/upgrade/db_update_helper.py”, line 120, in update_db
self.update_seahub_sql(seahub_sql)
File “/home/sites/teufou.net/seafile/seafile-server-6.2.1/upgrade/db_update_helper.py”, line 283, in update_seahub_sql
self.apply_sqls(self.seahub_db, sql_path)
File “/home/sites/teufou.net/seafile/seafile-server-6.2.1/upgrade/db_update_helper.py”, line 273, in apply_sqls
conn.execute(line)
sqlite3.OperationalError: no such table: sysadmin_extra_userloginlog

Failed to upgrade your database

any suggestion ?

Best Regards

Just a little question: Testing WSGI mode here (with 6.1.2 version, 6.2.1 isnt out for rpi), but thats working fine. The only problem is login page, after typing user and password it didnt redirect to library page. But login works, as if i manually type server adress (which is https://xyz:8001) i get library page. Nginx config is same like posted above, nothing else changed, with fcgi login works normal.
Maybe thats only while using older 6.1.2 version and i have to wait for new 6.2.1? or did i something wrong?

server {
    listen 8001 ssl http2;
	  
    ssl_certificate /etc/nginx/ssl/###.crt;
    ssl_certificate_key /etc/nginx/ssl/###.key;
    server_name ###;
  	proxy_set_header X-Forwarded-For $remote_addr;
	add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
    server_tokens off;
	
    client_max_body_size 10G; # set max upload size
    
	location / {
        proxy_pass         http://127.0.0.1:8000;
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host $server_name;
	    proxy_read_timeout  1200s;
	    proxy_http_version 1.1;
	
    #   used for view/edit office file via Office Online Server
    #   client_max_body_size 0;

        access_log      /var/log/nginx/seahub.access.log;
        error_log       /var/log/nginx/seahub.error.log;
    }
	
    location /seafhttp {
        rewrite ^/seafhttp(.*)$ $1 break;
        proxy_pass http://127.0.0.1:8082;
        client_max_body_size 0;
		proxy_connect_timeout  36000s;
        proxy_read_timeout  36000s;
		proxy_send_timeout  36000s;
	    send_timeout  36000s;
        proxy_request_buffering off;
        proxy_http_version 1.1;
	}
    
    #location /media {
    #    root /root/seafile-server-latest/seahub;
    #}
location /seafdav {
        fastcgi_pass    127.0.0.1:8090;
        fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name;
        fastcgi_param   PATH_INFO           $fastcgi_script_name;

        fastcgi_param   SERVER_PROTOCOL     $server_protocol;
        fastcgi_param   QUERY_STRING        $query_string;
        fastcgi_param   REQUEST_METHOD      $request_method;
        fastcgi_param   CONTENT_TYPE        $content_type;
        fastcgi_param   CONTENT_LENGTH      $content_length;
        fastcgi_param   SERVER_ADDR         $server_addr;
        fastcgi_param   SERVER_PORT         $server_port;
        fastcgi_param   SERVER_NAME         $server_name;

        fastcgi_param   HTTPS               on;

        client_max_body_size 0;

        access_log      /var/log/nginx/seafdav.access.log;
        error_log       /var/log/nginx/seafdav.error.log;
    }
}

I’m having the same problem as you and the others are describing. Can you elaborate on this step? Thanks. I’m not exactly sure on how to proceed to carry out what you wrote.

6.2.1 was released as stable before the 14 days of beta time were over. 6.2.1 still has some bugs, hence is still rather beta than stable.
If you state on your website that you run 2 weeks in beta please stick to it. It is not consequent and gives an impression that you don’t care much about what you tell/sell your clients. :frowning:

Thanks for making CE available to us.

1 Like

In your nginx config can you reorder the modules this way and see if the error still repeats? I have the same issue with 6.1.2 with Apache.

The order:

location /seafdav

and then

location /seafhttp

It seems to have solved the issue for me: URL rewrite issue. sf.domain.tld/seafdav turns in to sf.domain.tldseafdav

I don’t know why table sysadmin_extra_userloginlog is missing in your sqlite3 db. Anyway, you can create it by yourself via the following sentence:

CREATE TABLE "sysadmin_extra_userloginlog" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "username" varchar(255) NOT NULL, "login_date" datetime NOT NULL, "login_ip" varchar(128) NOT NULL);
CREATE INDEX "sysadmin_extra_userloginlog_14c4b06b" ON "sysadmin_extra_userloginlog" ("username");
CREATE INDEX "sysadmin_extra_userloginlog_28ed1ef0" ON "sysadmin_extra_userloginlog" ("login_date");

then rerun upgrade_6.1_6.2.sh。

@Captain_Rage I don’t know and have not checked if 6.2.2 fixed this already, but what I had to run was sqlite3 seahub.db < seafile-server-latest/upgrade/sql/6.2.0/sqlite/seahub.sql.

2 Likes

It is for “about 2 weeks”, not for exactly 2 weeks. As the SQLite upgrade script bug is urgent, we publish a new version sooner than waiting 2 weeks. As I don’t see there are other significant bugs, I remove the beta mark.

2 Likes

My bad, didn’t read it this way.
Thanks for the fast fix.

Not fixed in 6.2.2
Updating seafile/seahub database …

[INFO] You are using SQLite3
[INFO] updating seahub database…
Traceback (most recent call last):
File “/home/sites/teufou.net/seafile/seafile-server-6.2.2/upgrade/db_update_helper.py”, line 363, in
main()
File “/home/sites/teufou.net/seafile/seafile-server-6.2.2/upgrade/db_update_helper.py”, line 358, in main
db_updater.update_db()
File “/home/sites/teufou.net/seafile/seafile-server-6.2.2/upgrade/db_update_helper.py”, line 259, in update_db
super(SQLiteDBUpdater, self).update_db()
File “/home/sites/teufou.net/seafile/seafile-server-6.2.2/upgrade/db_update_helper.py”, line 120, in update_db
self.update_seahub_sql(seahub_sql)
File “/home/sites/teufou.net/seafile/seafile-server-6.2.2/upgrade/db_update_helper.py”, line 283, in update_seahub_sql
self.apply_sqls(self.seahub_db, sql_path)
File “/home/sites/teufou.net/seafile/seafile-server-6.2.2/upgrade/db_update_helper.py”, line 273, in apply_sqls
conn.execute(line)
sqlite3.OperationalError: no such table: sysadmin_extra_userloginlog

Failed to upgrade your database

I will create the table manually

Great It works like a charm
Thank you very much

I have migrated to 6.2 successfully but noticed when using WSGI mode that seahub is exposed on port 8000 on 0.0.0.0 not 127.0.0.1. As I’m on a VPS with no iptables this is a problem.

Looking in seahub.sh there is this line:

$PYTHON $gunicorn_exe seahub.wsgi:application -c “${gunicorn_conf}” -b “0.0.0.0:${port}” --preload

I have changed the 0.0.0.0 to 127.0.0.1 which works for me. Is there another way which is more suitable?
(BTW must try and learn to format code in these fancy editors on day)

EDIT: Just noticed user TMHBOFH has also spotted this.
Best Regards

For people not configured Nginx/Apache, ./seahub.sh start need to listen on 0.0.0.0 to work. For not broken existing Seafile installations, this should be default behaviour. We will add an option to listen on 127.0.0.1 only.

3 Likes

Excellent Daniel.

Thank you.

Not sure I follow. Are you saying we should modify seahub.sh for 127.0.0.1, modify Nginx config (or Apache) or wait for an update? -Thanks

1 Like

works, thanks had the same problem.

Security should go first and things like this need to be published publicly to avoid shitstorm because of security issues.
Ty

If your Seafile installation is behind Apache/Nginx and you implement WSGI then when Seahub is run it will open port 8000 on 0.0.0.0.

If, like me, you have no firewall then this exposes port 8000 to the 'net and it is not required to be so. So the answer is yes to the question of modifying seahub.sh if you consider this a risk. Also bear in mind that any changes to seahub.sh will disappear in the next update.

I adapted the rpi configuration on Github to consider proxy_http_ version 1.1 if we get such error"connection refused...HTTP/1.1." on nginx logfiles or we have http2. The other should be done by development team.

2 Likes

After updating from 6.1.9 Pro to 6.2.0 Pro Beta I receive an error, when I try to open an Excel file via Office Online Server:

Can someone reproduce the error?
This only applies to Excel files.