(Illustration by Gaich Muramatsu)
>This one seems simple, you need to have an entry for the /vicepa >partition in the /vice/db/vicetab file, and have an initially empty >file >called /vicepa/FTREEDB. I wonder why the setup scripts didn't do this >for you. And if they did, the forward and reverse namelookups for your >server didn't match and the server doesn't realize that soap is really >the name of the server. Although, the server should still have been >running and able to accept the rpc2 binding even without available >partitions (useless but...). This is possible. The machine does not have a reverse lookup at all. I was hoping that wouldn't matter. I went through and tried to track down all the coda files and deleted them all, including /vice and /vicepa. I then did a make install and /vice/db/vicetab now has this line in it: soap /vicepa ftree width=64,depth=3 I've included the complete transcript of an install, and the server logs, just in case I have entered something very wrong. I apologise in advance for the large message size. For what it's worth, I also did the same procedure using partitions instead of files and got the same result. The only difference was that the process load fell to 0.2 rather than holding steady at 6. soap:/# vice-setup Welcome to the Coda Server Setup script! Setting up config files for a coda server. Do you want the file /usr/local/etc/coda/server.conf created? [yes] What is the root directory for your coda server? [/vice] Setting up /vice. Directories under /vice are set up. Is this the master server, aka the SCM machine? (y/n) y Setting up tokens for authentication. The following token must be identical on all servers. Enter a random token for update authentication : lalala The following token must be identical on all servers. Enter a random token for auth2 authentication : alalal The following token must be identical on all servers. Enter a random token for volutil authentication : bbbbbb tokens done! Setting up the file list for update client Filelist for update ready. /etc/services already has new services registered! Good. /etc/services ready for Coda Now installing files specific to the SCM... Setting up servers file. Enter an id for the SCM server. (hostname soap) The serverid is a unique number between 0 and 255. You should avoid 0, 127, and 255. serverid: 1 done! Initializing the VSGDB to contain the SCM as E0000100 /vice/db/VSGDB set up Setting up ROOTVOLUME file Enter the name of the rootvolume (< 32 chars) : ROOTVOLUME Setting up users and groups for Coda You need to give me a uid (not 0) and username (not root) for a Coda System:Administrator member on this server, (sort of a Coda super user) Enter the uid of this user: 1001 Enter the username of this user: jeremy An initial administrative user jeremy (id 1001) with Coda password changeme now exists. A server needs a small log disk partition, preferrably on a disk by itself. It also needs a metadata partition of approx 4% of you filespace. For trial purposes you may give oridnary files instead of raw partitions. Keep all size small if you do this. Production servers will want partitions for speed. ------------------------------------------------------- WARNING: you are going to play with your partitions now. verify all answers you give. ------------------------------------------------------- WARNING: these choices are not easy to change once you are up and running. Are you ready to set up RVM? [yes/no] yes What is your log partition? log The log size must be smaller than you log partition. We recommend not more than 30M log size, and 2M is a good choice. What is your log size? (enter as e.g. '2M') 2M What is your data partition (or file)? data The data size must be approx 4% of you server file space. We have templates for servers of approx: 500M, 1G, 2.2G, 3.3G, 8G (you can store less, but not more on such servers). The corresponding data sizes are 22M, 44M, 90M, 130M, 315M. Pick one of the defaults, otherwise I will bail out What is the size of you data partition (or file) [22M, 44M, 90M, 130M, 200M, 315M]: 22M -------------------------------------------------------- WARNING: DATA and LOG partitions are about to be wiped. -------------------------------------------------------- --- log area: /vice/db/log, size 2M. --- data area: /vice/db/data, size 22M. Proceed, and wipe out old data? [y/n] y LOG file has been initialized! Rdsinit will initialize data and log. This takes a while. rvm_initialize succeeded. Going to initialize data file to zero, could take awhile. done. rds_zap_heap completed successfully. rvm_terminate succeeded. RVM setup is done! Your server directories will hold the files (not directories). You can currently only have one directory per disk partition. Where shall we store your file data [/vicepa]? Shall I set up a vicetab entry for /vicepa (y/n) y Select the maximum number of files for the server. [256K, 1M, 2M, 16M]: 256K Server directory /vicepa is set up! Congratulations: your configuration is ready...and now to get going do the following: - start the auth2 server as: auth2 - start rpc2portmap as: rpc2portmap - start updatesrv as: updatesrv - start updateclnt as: updateclnt -h soap - start the fileserver: startserver & - wait until the server is up: tail -f /vice/srv/SrvLog - create your root volume: createvol_rep ROOTVOLUME E0000100 /vicepa - setup a client: venus-setup soap 20000 - start venus: venus - enjoy Coda. - for more information see http://www.coda.cs.cmu.edu. soap:/# auth2 soap:/# rpc2portmap soap:/# updatesrv soap:/# updateclnt -h soap Creating /vice/spool soap:/# startserver -d 100 & [1] 5127 soap:/# Setting debuglevel to 100 soap:/# cat /vice/srv/* 19:55:52 New SrvLog started at Sat Sep 29 19:55:52 2001 19:55:52 Resource limit on data size are set to -1 19:55:52 RvmType is Rvm 19:55:52 Main process doing a LWP_Init() 19:55:52 Main thread just did a RVM_SET_THREAD_DATA 19:55:52 Setting Rvm Truncate threshhold to 5. Partition /vicepa: inodes in use: 0, total: 262144. 19:55:53 Partition /vicepa: 4562748K available (minfree=5%), 3715136K free. 19:55:53 The server (pid 5131) can be controlled using volutil commands 19:55:53 "volutil -help" will give you a list of these commands 19:55:53 If desperate, "kill -SIGWINCH 5131" will increase debugging level 19:55:53 "kill -SIGUSR2 5131" will set debugging level to zero 19:55:53 "kill -9 5131" will kill a runaway server 19:55:53 AL_Initialize($Header: /coda-src/coda/coda-src/al/al.h,v 1.3 1999/05/11 20:07:59 jaharkes Exp $) 19:55:53 Library version: '$Header: /coda-src/coda/coda-src/al/al.h,v 1.3 1999/05/11 20:07:59 jaharkes Exp $' Header version: '$Header: /coda-src/coda/coda-src/al/al.h,v 1.3 1999/05/11 20:07:59 jaharkes Exp $' 19:55:53 in AL_NameToId(System:Administrators) 19:55:53 in AL_NameToId(System:AnyUser) 19:55:53 Entering VInitVolumePackage(500, 500, 1) dump_storage at InitVolumePackage { already_initialized = 1; VolumeList = { VolHead VolumeList[0]: id = 0 parentid = 0 type = 0 VolumeData: smallvnodes = 0 smallListSize = 0 rec_smolist *smallVnodeList = (nil) largevnodes = 0 largeListSize = 0 VnodeDiskObject **largeVnodeList = (nil) VolHead VolumeList[1]: id = 0 parentid = 0 type = 0 VolumeData: smallvnodes = 0 smallListSize = 0 rec_smolist *smallVnodeList = (nil) largevnodes = 0 largeListSize = 0 VnodeDiskObject **largeVnodeList = (nil) VolHead VolumeList[2]: id = 0 parentid = 0 type = 0 VolumeData: smallvnodes = 0 smallListSize = 0 rec_smolist *smallVnodeList = (nil) largevnodes = 0 largeListSize = 0 VnodeDiskObject **largeVnodeList = (nil) VolHead VolumeList[3]: id = 0 parentid = 0 type = 0 VolumeData: smallvnodes = 0 smallListSize = 0 rec_smolist *smallVnodeList = (nil) largevnodes = 0 largeListSize = 0 VnodeDiskObject **largeVnodeList = (nil) VolHead VolumeList[4]: id = 0 parentid = 0 type = 0 VolumeData: smallvnodes = 0 smallListSize = 0 rec_smolist *smallVnodeList = (nil) largevnodes = 0 largeListSize = 0 VnodeDiskObject **largeVnodeList = (nil) VolHead VolumeList[5]: id = 0 parentid = 0 type = 0 VolumeData: smallvnodes = 0 smallListSize = 0 rec_smolist *smallVnodeList = (nil) largevnodes = 0 largeListSize = 0 VnodeDiskObject **largeVnodeList = (nil) VolHead VolumeList[6]: id = 0 parentid = 0 type = 0 VolumeData: smallvnodes = 0 smallListSize = 0 rec_smolist *smallVnodeList = (nil) largevnodes = 0 largeListSize = 0 VnodeDiskObject **largeVnodeList = (nil) VolHead VolumeList[7]: id = 0 parentid = 0 type = 0 VolumeData: smallvnodes = 0 smallListSize = 0 rec_smolist *smallVnodeList = (nil) largevnodes = 0 largeListSize = 0 VnodeDiskObject **largeVnodeList = (nil) VolHead VolumeList[8]: id = 0 parentid = 0 type = 0 VolumeData: smallvnodes = 0 smallListSize = 0 rec_smolist *smallVnodeList = (nil) largevnodes = 0 largeListSize = 0 VnodeDiskObject **largeVnodeList = (nil) VolHead VolumeList[9]: id = 0 parentid = 0 type = 0 VolumeData: smallvnodes = 0 smallListSize = 0 rec_smolist *smallVnodeList = (nil) largevnodes = 0 largeListSize = 0 VnodeDiskObject **largeVnodeList = (nil) VolHead VolumeList[10]: id = 0 parentid = 0 type = 0 VolumeData: smallvnodes = 0 smallListSize = 0 rec_smolist *smallVnodeList = (nil) largevnodes = 0 largeListSize = 0 VnodeDiskObject **largeVnodeList = (nil) VolHead VolumeList[11]: id = 0 parentid = 0 type = 0 VolumeData: smallvnodes = 0 smallListSize = 0 rec_smolist *smallVnodeList = (nil) largevnodes = 0 largeListSize = 0 VnodeDiskObject **largeVnodeList = (nil) VolHead VolumeList[12]: id = 0 parentid = 0 type = 0 VolumeData: smallvnodes = 0 smallListSize = 0 rec_smolist *smallVnodeList = (nil) largevnodes = 0 largeListSize = 0 VnodeDiskObject **largeVnodeList = (nil) VolHead VolumeList[13]: id = 0 parentid = 0 type = 0 VolumeData: smallvnodes = 0 smallListSize = 0 rec_smolist *smallVnodeList = (nil) largevnodes = 0 largeListSize = 0 VnodeDiskObject **largeVnodeList = (nil) } SmallVnodeFreeList = { SmallVnodeFreeList[0] SmallVnodeFreeList[1] SmallVnodeFreeList[2] } LargeVnodeFreeList = { LargeVnodeFreeList[0] LargeVnodeFreeList[1] } SmallVnodeIndex = 511; LargeVnodeIndex = 127; MaxVolId = 1000000; } 19:55:53 Entering ReleaseVolumeHeader !=== snip, repeated for a page ===! 19:55:53 Entering ReleaseVolumeHeader 19:55:53 Entering VInitVnodes(vclass = 0, vnodes = 500) 19:55:53 Entering VInitVnodes(vclass = 1, vnodes = 500) 19:55:53 VInitVnodes: VnodeDiskObject = 112, SIZEOF_SMALLVNODE = 112 19:55:53 Checking VLDB... 19:55:53 VCheckVLDB: could not open VLDB 19:55:53 VInitVolPackage: no VLDB! Please create a new one. 19:55:53 Entering S_VolSalvage (0, (null), 0, 1, 1, 0) 19:55:53 Vice file system salvager, version 3.0. 19:55:53 Entering VInitVolUtil 19:55:53 VInitVolUtil: getting exclusive locks 19:55:53 SanityCheckFreeLists: Checking RVM Vnode Free lists. 19:55:53 DestroyBadVolumes: Checking for destroyed volumes. 19:55:53 Entering VolHeaderByIndex for index 0 19:55:53 VolHeaderByIndex: bogus volume index 0 - maxid 0 (ok if volume was purged or deleted) 19:55:53 Entering SalvageFileSys (/vicepa, 0) 19:55:53 Salvaging file system partition /vicepa 19:55:53 Force salvage of all volumes on this partition 19:55:53 Entering GetInodeSummary (/tmp/salvage.inodes, 0) 19:55:53 Entering ListCodaInodes(/vicepa, /tmp/salvage.inodes, 0x0, 0) 19:55:53 Scanning inodes in directory /vicepa... 19:55:53 ListViceInodes returns success 19:55:53 entering qsort(0x81ae468, 0, 32, 0x8094374) 19:55:53 returned from qsort 19:55:53 about to malloc 0 bytes for inodeSummary 19:55:53 Leaving GetInodeSummary() 19:55:53 GetInodeSummary returns success 19:55:53 Entering GetVolumeSummary(0) 19:55:53 GetVolSummary: filesyspath = /vicepa nVolumes = 0 19:55:53 Entering VolHeaderByIndex for index 0 19:55:53 VolHeaderByIndex: bogus volume index 0 - maxid 0 (ok if volume was purged or deleted) 19:55:53 GetVolumeSummary: entering qsort for 0 volumes 19:55:53 SalvageFileSys completed on /vicepa 19:55:53 release_locks: released file server lock 19:55:53 release_locks: released volume utility lock 19:55:53 Leaving S_VolSalvage with rc = 0 19:55:53 Entering FSYNC_fsInit(), creating LWP 19:55:53 Attached 0 volumes; 0 volumes not attached 19:55:53 CheckVRDB: could not open VRDB 0x81ae548 : Cop Pending Manager Date: Sat 09/29/2001 19:55:52 Starting new SrvLog file --- This is the pid file 5131 --- soap:/# createvol_rep ROOTVOLUME E0000100 /vicepa Getting initial version of /vice/vol/BigVolumeList. V_BindToServer: binding to host soap.thesailorsarms.org RPC2_NewBinding to server soap.thesailorsarms.org failed with RPC2_NOBINDING (F)awk: cannot open /vice/vol/BigVolumeList (No such file or directory) awk: cannot open /vice/vol/BigVolumeList (No such file or directory) Servers are (soap ) grep: /vice/vol/BigVolumeList: No such file or directory V_BindToServer: binding to host soap.thesailorsarms.org RPC2_NewBinding to server soap.thesailorsarms.org failed with RPC2_NOBINDING (F)cat: /tmp/vollist.5205: No such file or directory Found no partitions for server soap. -- I/O, I/O, It's off to disk I go, A bit or byte to read or write, I/O, I/O, I/O...Received on 2001-09-29 06:14:49