Data too long for column 'login_ip' at row 1

Hi,

I noticed that on 9.0.2 some users can’t log in when they come from an IPv6 address.
Seahub reports:

    [ERROR] django.request:230 log_response Internal Server Error: /accounts/login/
Traceback (most recent call last):
  File "/opt/seafile/seafile-server-9.0.2/seahub/thirdpart/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/opt/seafile/seafile-server-9.0.2/seahub/thirdpart/django/db/backends/mysql/base.py", line 73, in execute
    return self.cursor.execute(query, args)
  File "/usr/local/lib/python3.7/dist-packages/MySQLdb/cursors.py", line 206, in execute
    res = self._query(query)
  File "/usr/local/lib/python3.7/dist-packages/MySQLdb/cursors.py", line 319, in _query
    db.query(q)
  File "/usr/local/lib/python3.7/dist-packages/MySQLdb/connections.py", line 254, in query
    _mysql.connection.query(self, query)
MySQLdb._exceptions.DataError: (1406, "Data too long for column 'login_ip' at row 1")

So I went into the MySQL seahub DB and issued alter table sysadmin_extra_userloginlog modify column login_ip varchar(45) not null; which fixed it. Is this a known bug? Or some misconfiguration on my side? I ran all upgrade scripts as far as I can tell.

Stefan

1 Like

@Jonathan Please verify as IPv6 shouldn’t cause any issues. thanks

I think this is mostly a missing upgrade script. I recently installed a new Seafile 9 from scratch and the field is a VARCHAR(128) there.