(Illustration by Gaich Muramatsu)
On Fri, Nov 19, 1999 at 03:34:02PM +0100, Emmanuel Anne wrote: > I tried to mount a simple server to make some tests on it. > Log file = 12M (in a file /log) > data file = 44M (in a file /data) > > Mounted with venus-setup <host> 10000 > df returns stupid results for the coda parition... (server and client run on > linux). That's either 9GB/9GB/9GB (before Linux 2.2.11) Or df: <size of client cache>/<blocks associated with write open objects>/ <free-able blocks> df -i: <available fso's>/<allocated fso's>/<free fso's> (2.2.11 and later) > And I finally receive "No space left on device" avec having put only > about 88 M on it (22M little files and one 66M big file). Ok, ENOSPC can come from different parts of the system-`chain'. Alas, there is only one ENOSPC, so it's meaning is a bit overloaded. 1 Server partition full. For replicated volumes any of the partitions with one of the replicas is full 2 The client cache is full (diskblocks), this can only happen when no objects can be flushed as a result of open for write or logged modification information (resulting from disconnected operation) 3 The client cache is full (fileobjects), this can also happen when no objects can be flushed. This is calculated by the client on the assumption of an average filesize of 16K/file. So a 10MB cache can cache at most 416 fileobjects (directories + files + symlinks).... Oh, and there are a couple reserved for repair purposes. 4 The partition containing the client cache is full (blocks or inodes), Client cache is essentially not yet full, but logfiles (/usr/coda/venus.cache/venus.log or /usr/coda/etc/console) or saved Coda-state files (/usr/coda/spool/*/*) have filled the partition. 5 There are no more modification log entries available, This is uncommon, and more likely to lead to a crashed client. > What happens ??? Most often #2 or #3, the client-server connectivity was declared weak or disconnected. The client `transparently' adapted and started logging modifications, but reintegration of these changes is only allowed with valid authentication. Furthermore, `tar -xzf' to the cache is a lot faster than Coda can ship the logged operations across the network. So even with tokens it is possible to fill a small cache (like your 10MB one) very very quickly. Solutions; * Make sure you have tokens, ctokens/clog * Force the client to not detect `weak' network conditions, cfs strong + Maybe venus can be modified to block user applications that try to overfill the cache when `connected' but logging, until we shipped some changes back to the server. JanReceived on 1999-11-19 11:08:31