Folks,
We upgraded our disk array recently from 12TB to 24TB. Once we did that camserver would no longer save images to that array.
It gave the error message "***** Insufficient Disk Space *****" (which is rather ironic!)
I found and fixed the problem, which is in /p2_det/programs/tvx-7.3.13-121212b/camera/camserver/slsp2det_cam/util/interface.c
The problem is that the disk free size in blocks is being copied from the statfs structure (.f_bavail, where it is of type long) to a local variable of type int.
**********************************************************************
slsp2det_cam/util> diff -U5 interface.c.orig interface.c
--- interface.c.orig 2015-05-18 14:41:33.000000000 -0500
+++ interface.c 2015-05-18 14:42:32.000000000 -0500
@@ -1690,13 +1690,13 @@
#define TMPFS_MAGIC 0x01021994 // from statfs(2)
// MarM: loosend first requirements
//if ( ((disk_data.f_type != TMPFS_MAGIC) && ((disk_data.f_bavail - 150*n_images) <
// printf("check1: %i %i %i %i %i: %i %i %i\n",n,n_images,camera_wide,camera_high,camera_bpp,disk_data.f_blocks, disk_data.f_bavail, disk_data.f_bsize);
- int dsa = (disk_data.f_bavail);
- int overhead = 20*4096; // additional file system overhead and image header stuff
- int dsu = n_images * ( (overhead + (camera_wide * camera_high*camera_bpp) / (8*n) ) / (disk_data.f_bsize) );
+ long dsa = (disk_data.f_bavail);
+ long overhead = 20*4096; // additional file system overhead and image header stuff
+ long dsu = n_images * ( (overhead + (camera_wide * camera_high*camera_bpp) / (8*n) ) / (disk_data.f_bsize) );
// printf("check2: %i < %i: %i\n", dsa,dsu,dsa<dsu);
// if ( ( (disk_data.f_bavail - 150*n_images) < ( (n_images/n) * (camera_wide * camera_high/disk_data.f_bsize) * (camera_bpp/8) )) &&
if ( (dsa<dsu) &&
**********************************************************************
I asked recently if this version of TVX was the most recent, and was told that it was, so I am assuming that you have not already fixed this problem?
Thanks,
Mark