"I/O device error"

windows
server

#1

I just installed Seafile server on Fedora, and Seadrive on windows 10. The very first thing I tried to do was copy a git repository into it, but found that every single directory that gets created triggers this error:

Error 0x8007045D: The request could not be performed because of an I/O device error.

I can click “Try Again” and it will succeed and move onto the next folder, but there’s far too many folders for me to do this manually. There’s a checkbox for “Do this for all current items”, but it doesn’t do anything.

Is there anything I can do to fix this? I’m just using the normal copy and paste function in windows explorer.

My seafile and seahub configs are defaults other than changing the seahub port. Seadrive successfully connected and logged in, and I can create/browse files.

seafile.log
[02/17/19 16:04:03] http-server.c(173): fileserver: worker_threads = 10
[02/17/19 16:04:03] http-server.c(188): fileserver: fixed_block_size = 8388608
[02/17/19 16:04:03] http-server.c(203): fileserver: web_token_expire_time = 3600
[02/17/19 16:04:03] http-server.c(218): fileserver: max_indexing_threads = 1
[02/17/19 16:04:03] http-server.c(233): fileserver: max_index_processing_threads= 3
[02/17/2019 04:04:03 PM] ../common/mq-mgr.c(54): [mq client] mq cilent is started
[02/17/2019 04:04:04 PM] size-sched.c(96): Repo size compute queue size is 0
[02/17/2019 04:09:04 PM] size-sched.c(96): Repo size compute queue size is 0
[02/17/2019 04:14:04 PM] size-sched.c(96): Repo size compute queue size is 0
[02/17/2019 04:19:04 PM] size-sched.c(96): Repo size compute queue size is 0
[02/17/2019 04:24:04 PM] size-sched.c(96): Repo size compute queue size is 0
[02/17/2019 04:29:04 PM] size-sched.c(96): Repo size compute queue size is 0
[02/17/2019 04:34:04 PM] size-sched.c(96): Repo size compute queue size is 0
[02/17/2019 04:39:04 PM] size-sched.c(96): Repo size compute queue size is 0
[02/17/2019 04:44:04 PM] size-sched.c(96): Repo size compute queue size is 0
[02/17/2019 04:49:04 PM] size-sched.c(96): Repo size compute queue size is 0
[02/17/2019 04:54:04 PM] size-sched.c(96): Repo size compute queue size is 0
[02/17/2019 04:59:04 PM] size-sched.c(96): Repo size compute queue size is 0
[02/17/2019 05:04:04 PM] size-sched.c(96): Repo size compute queue size is 0

I have seafile behind an nginx reverse proxy (which adds HTTPS), here’s the relevant parts of the config:

nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
	worker_connections 1024;
}

http {
	log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
					  '$status $body_bytes_sent "$http_referer" '
					  '"$http_user_agent" "$http_x_forwarded_for"';

	access_log  /var/log/nginx/access.log  main;

	sendfile            on;
	tcp_nopush          on;
	tcp_nodelay         on;
	keepalive_timeout   65;
	types_hash_max_size 2048;

	include             /etc/nginx/mime.types;
	default_type        application/octet-stream;

	# Load modular configuration files from the /etc/nginx/conf.d directory.
	# See http://nginx.org/en/docs/ngx_core_module.html#include
	# for more information.
	include /etc/nginx/conf.d/*.conf;

	# Seafile
	server {
		listen       443 ssl http2;
		listen       [::]:443 ssl http2;
		server_name  seafile.example.com;
		root         /usr/share/nginx/html;
		ssl_certificate /etc/letsencrypt/live/seafile.example.com/fullchain.pem; # managed by Certbot
		ssl_certificate_key /etc/letsencrypt/live/seafile.example.com/privkey.pem; # managed by Certbot
		ssl_session_cache shared:SSL:1m;
		ssl_session_timeout  10m;
		ssl_ciphers PROFILE=SYSTEM;
		ssl_prefer_server_ciphers on;

		# Load configuration files for the default server block.
		include /etc/nginx/default.d/*.conf;

		location /.well-known {
			root /usr/share/nginx/html/.well-known;
		}

		location / {
			proxy_pass http://127.0.0.1:17711; # Seahub port
			proxy_http_version 1.1;
			proxy_buffering off;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $remote_addr;
			proxy_set_header Upgrade $http_upgrade;
			proxy_set_header Connection $connection_upgrade;
			proxy_set_header Origin http://$host;
			gzip off;
		}

		location /seafhttp {
			rewrite ^/seafhttp(.*)$ $1 break;
			proxy_pass http://127.0.0.1:8082; # Seafile port
			client_max_body_size 0;
			proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

			proxy_connect_timeout  36000s;
			proxy_read_timeout  36000s;
			proxy_send_timeout  36000s;

			send_timeout  36000s;
		}

		location /media {
			root /home/seafile/seafile-server-latest/seahub;
		}

		error_page 404 /404.html;
			location = /40x.html {
		}

		error_page 500 502 503 504 /50x.html;
			location = /50x.html {
		}
	}
}

#2

You should be able to find some clue in the seadrive.log in the client. The server logs are not related.


#3

Here’s the logs from Seadrive. I tried to copy “rink-rs” (which already had a partial copy of a few files in Seafile), and pressed “try again” a few times.

[02/19/19 18:44:54] dokan-ops.c(666): Mkdir rink-rs in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(666): Mkdir rink-rs/.git in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(666): Mkdir rink-rs/.git/hooks in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(829): Create file rink-rs/.git/hooks/fsmonitor-watchman.sample in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(2276): Do delete file rink-rs/.git/hooks/fsmonitor-watchman.sample in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(666): Mkdir rink-rs/.git/info in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(666): Mkdir rink-rs/.git/logs in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(666): Mkdir rink-rs/.git/logs/refs in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(666): Mkdir rink-rs/.git/logs/refs/heads in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(829): Create file rink-rs/.git/logs/refs/heads/web2 in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(2276): Do delete file rink-rs/.git/logs/refs/heads/web2 in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(666): Mkdir rink-rs/.git/logs/refs/remotes in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(666): Mkdir rink-rs/.git/logs/refs/remotes/origin in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(666): Mkdir rink-rs/.git/objects in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(666): Mkdir rink-rs/.git/objects/07 in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(829): Create file rink-rs/.git/objects/07/58b8405147f5a7cc4549783d8adc1a00fd6399 in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(2454): SetFileTime \My Libraries\Projects\rink-rs\.git\objects\07\58b8405147f5a7cc4549783d8adc1a00fd6399 called.
[02/19/19 18:44:54] dokan-ops.c(2457): CreationTime is 0 (unix), 0, 0 (windows)
[02/19/19 18:44:54] dokan-ops.c(2461): LastAccessTime is 0 (unix), 0, 0 (windows)
[02/19/19 18:44:54] dokan-ops.c(2465): LastWriteTime is 1528959697 (unix), 30671789, 2315109839 (windows)
[02/19/19 18:44:54] dokan-ops.c(666): Mkdir rink-rs/.git/objects/20 in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(829): Create file rink-rs/.git/objects/20/154c45a1b68592da8dd208d42876ead6c7cbad in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(2454): SetFileTime \My Libraries\Projects\rink-rs\.git\objects\20\154c45a1b68592da8dd208d42876ead6c7cbad called.
[02/19/19 18:44:54] dokan-ops.c(2457): CreationTime is 0 (unix), 0, 0 (windows)
[02/19/19 18:44:54] dokan-ops.c(2461): LastAccessTime is 0 (unix), 0, 0 (windows)
[02/19/19 18:44:54] dokan-ops.c(2465): LastWriteTime is 1528959697 (unix), 30671789, 2314661043 (windows)
[02/19/19 18:44:54] dokan-ops.c(666): Mkdir rink-rs/.git/objects/2c in repo Projects(bb0a6f81)
[02/19/19 18:44:54] dokan-ops.c(2429): Failed to set file bb0a6f81-5372-4141-a383-26729f41043f/rink-rs/.git/objects/2c hidden in repo tree.
[02/19/19 18:44:54] dokan-ops.c(88): SetFileAttributes \My Libraries\Projects\rink-rs\.git\objects\2c: IO error
[02/19/19 18:44:56] dokan-ops.c(829): Create file rink-rs/.git/objects/2c/9b4fed6bc23462ff5591e42b85fbb53fdb9566 in repo Projects(bb0a6f81)
[02/19/19 18:44:56] dokan-ops.c(2454): SetFileTime \My Libraries\Projects\rink-rs\.git\objects\2c\9b4fed6bc23462ff5591e42b85fbb53fdb9566 called.
[02/19/19 18:44:56] dokan-ops.c(2457): CreationTime is 0 (unix), 0, 0 (windows)
[02/19/19 18:44:56] dokan-ops.c(2461): LastAccessTime is 0 (unix), 0, 0 (windows)
[02/19/19 18:44:56] dokan-ops.c(2465): LastWriteTime is 1528959697 (unix), 30671789, 2314780726 (windows)
[02/19/19 18:44:56] dokan-ops.c(666): Mkdir rink-rs/.git/objects/40 in repo Projects(bb0a6f81)
[02/19/19 18:44:56] dokan-ops.c(2429): Failed to set file bb0a6f81-5372-4141-a383-26729f41043f/rink-rs/.git/objects/40 hidden in repo tree.
[02/19/19 18:44:56] dokan-ops.c(88): SetFileAttributes \My Libraries\Projects\rink-rs\.git\objects\40: IO error
[02/19/19 18:44:57] dokan-ops.c(829): Create file rink-rs/.git/objects/40/dcd462f04276c26ec23c8cb5933eb4ce85c3de in repo Projects(bb0a6f81)
[02/19/19 18:44:57] dokan-ops.c(2454): SetFileTime \My Libraries\Projects\rink-rs\.git\objects\40\dcd462f04276c26ec23c8cb5933eb4ce85c3de called.
[02/19/19 18:44:57] dokan-ops.c(2457): CreationTime is 0 (unix), 0, 0 (windows)
[02/19/19 18:44:57] dokan-ops.c(2461): LastAccessTime is 0 (unix), 0, 0 (windows)
[02/19/19 18:44:57] dokan-ops.c(2465): LastWriteTime is 1528959697 (unix), 30671789, 2314820614 (windows)
[02/19/19 18:44:57] dokan-ops.c(666): Mkdir rink-rs/.git/objects/55 in repo Projects(bb0a6f81)
[02/19/19 18:44:57] dokan-ops.c(2429): Failed to set file bb0a6f81-5372-4141-a383-26729f41043f/rink-rs/.git/objects/55 hidden in repo tree.
[02/19/19 18:44:57] dokan-ops.c(88): SetFileAttributes \My Libraries\Projects\rink-rs\.git\objects\55: IO error
[02/19/19 18:44:59] dokan-ops.c(829): Create file rink-rs/.git/objects/55/45d508b86b841dce5c76c8c4db6f942a418708 in repo Projects(bb0a6f81)
[02/19/19 18:44:59] dokan-ops.c(2454): SetFileTime \My Libraries\Projects\rink-rs\.git\objects\55\45d508b86b841dce5c76c8c4db6f942a418708 called.
[02/19/19 18:44:59] dokan-ops.c(2457): CreationTime is 0 (unix), 0, 0 (windows)
[02/19/19 18:44:59] dokan-ops.c(2461): LastAccessTime is 0 (unix), 0, 0 (windows)
[02/19/19 18:44:59] dokan-ops.c(2465): LastWriteTime is 1528944653 (unix), 30671754, 2191914835 (windows)
[02/19/19 18:44:59] dokan-ops.c(666): Mkdir rink-rs/.git/objects/57 in repo Projects(bb0a6f81)
[02/19/19 18:44:59] dokan-ops.c(2429): Failed to set file bb0a6f81-5372-4141-a383-26729f41043f/rink-rs/.git/objects/57 hidden in repo tree.
[02/19/19 18:44:59] dokan-ops.c(88): SetFileAttributes \My Libraries\Projects\rink-rs\.git\objects\57: IO error
[02/19/19 18:45:00] sync-mgr.c(572): Repo 'Projects' sync state transition from 'synchronized' to 'committing'.
[02/19/19 18:45:00] file-cache-mgr.c(2178): Failed to stat C:/Users/Tiffany/seadrive/data\file-cache\bb0a6f81-5372-4141-a383-26729f41043f\rink-rs/.git/hooks/fsmonitor-watchman.sample: No such file or directory.
[02/19/19 18:45:00] sync-mgr.c(2394): Failed to index file rink-rs/.git/hooks/fsmonitor-watchman.sample in repo bb0a6f81-5372-4141-a383-26729f41043f, skip.
[02/19/19 18:45:00] file-cache-mgr.c(2178): Failed to stat C:/Users/Tiffany/seadrive/data\file-cache\bb0a6f81-5372-4141-a383-26729f41043f\rink-rs/.git/logs/refs/heads/web2: No such file or directory.
[02/19/19 18:45:00] sync-mgr.c(2394): Failed to index file rink-rs/.git/logs/refs/heads/web2 in repo bb0a6f81-5372-4141-a383-26729f41043f, skip.
[02/19/19 18:45:00] sync-mgr.c(2704): All operations of repo Projects(bb0a6f81) have been processed.
[02/19/19 18:45:00] sync-mgr.c(572): Repo 'Projects' sync state transition from 'committing' to 'uploading'.
[02/19/19 18:45:00] http-tx-mgr.c(3921): Upload with HTTP sync protocol version 2.
[02/19/19 18:45:00] http-tx-mgr.c(1188): Transfer repo 'bb0a6f81': ('normal', 'init') --> ('normal', 'check')
[02/19/19 18:45:00] http-tx-mgr.c(1188): Transfer repo 'bb0a6f81': ('normal', 'check') --> ('normal', 'commit')
[02/19/19 18:45:00] http-tx-mgr.c(1188): Transfer repo 'bb0a6f81': ('normal', 'commit') --> ('normal', 'fs')
[02/19/19 18:45:00] http-tx-mgr.c(1188): Transfer repo 'bb0a6f81': ('normal', 'fs') --> ('normal', 'data')
[02/19/19 18:45:00] http-tx-mgr.c(1188): Transfer repo 'bb0a6f81': ('normal', 'data') --> ('normal', 'update-branch')
[02/19/19 18:45:00] http-tx-mgr.c(1188): Transfer repo 'bb0a6f81': ('normal', 'update-branch') --> ('finished', 'finished')
[02/19/19 18:45:00] sync-mgr.c(2338): removing blocks for repo bb0a6f81-5372-4141-a383-26729f41043f
[02/19/19 18:45:00] sync-mgr.c(572): Repo 'Projects' sync state transition from 'uploading' to 'get sync info'.
[02/19/19 18:45:01] sync-mgr.c(572): Repo 'Projects' sync state transition from 'get sync info' to 'synchronized'.
[02/19/19 18:45:02] sync-mgr.c(572): Repo 'Projects' sync state transition from 'synchronized' to 'committing'.
[02/19/19 18:45:02] sync-mgr.c(2704): All operations of repo Projects(bb0a6f81) have been processed.
[02/19/19 18:45:02] sync-mgr.c(572): Repo 'Projects' sync state transition from 'committing' to 'uploading'.
[02/19/19 18:45:02] http-tx-mgr.c(3921): Upload with HTTP sync protocol version 2.
[02/19/19 18:45:02] http-tx-mgr.c(1188): Transfer repo 'bb0a6f81': ('normal', 'init') --> ('normal', 'check')
[02/19/19 18:45:02] http-tx-mgr.c(1188): Transfer repo 'bb0a6f81': ('normal', 'check') --> ('normal', 'commit')
[02/19/19 18:45:02] http-tx-mgr.c(1188): Transfer repo 'bb0a6f81': ('normal', 'commit') --> ('normal', 'fs')
[02/19/19 18:45:02] http-tx-mgr.c(1188): Transfer repo 'bb0a6f81': ('normal', 'fs') --> ('normal', 'data')
[02/19/19 18:45:02] http-tx-mgr.c(1188): Transfer repo 'bb0a6f81': ('normal', 'data') --> ('normal', 'update-branch')
[02/19/19 18:45:02] http-tx-mgr.c(1188): Transfer repo 'bb0a6f81': ('normal', 'update-branch') --> ('finished', 'finished')
[02/19/19 18:45:02] sync-mgr.c(2338): removing blocks for repo bb0a6f81-5372-4141-a383-26729f41043f
[02/19/19 18:45:02] sync-mgr.c(572): Repo 'Projects' sync state transition from 'uploading' to 'get sync info'.
[02/19/19 18:45:02] sync-mgr.c(572): Repo 'Projects' sync state transition from 'get sync info' to 'synchronized'.

#4

Hi @Tiffany

This is a known issue. We’ll fix it in the next version.


#5

Hi, not adding any useful info, just for the record I have the exact same error with following config :

Seadrive 1.0.1 on Windows 1809
Seafile server pro 6.3.12


#6

It looks like this is fixed in the latest 1.0.3 release, thanks!