<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: full mount point detection (A500) in Operating System - HP-UX</title>
    <link>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607564#M725980</link>
    <description>hi,&lt;BR /&gt;&lt;BR /&gt;  are all the systems running the same O/S version?&lt;BR /&gt;&lt;BR /&gt;  To narrow the problem, you can run a simple C script&lt;BR /&gt;containing fwrites to see&lt;BR /&gt;whether it works.  &lt;BR /&gt;&lt;BR /&gt;-raj</description>
    <pubDate>Mon, 05 Nov 2001 17:20:18 GMT</pubDate>
    <dc:creator>Roger Baptiste</dc:creator>
    <dc:date>2001-11-05T17:20:18Z</dc:date>
    <item>
      <title>full mount point detection (A500)</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607561#M725977</link>
      <description>Hi,&lt;BR /&gt;&lt;BR /&gt;I have a strange situation. My application is checking the return value from fwrite to verify that a write to disk was successful. On D and R servers, it works fine. However, running the same code on an A500 server, the mount can fill up, but the application does not recognize that there is a problem. All of this is occuring running HPUX 11.00.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Suggestions?&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Mon, 05 Nov 2001 16:55:58 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607561#M725977</guid>
      <dc:creator>Bill_14</dc:creator>
      <dc:date>2001-11-05T16:55:58Z</dc:date>
    </item>
    <item>
      <title>Re: full mount point detection (A500)</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607562#M725978</link>
      <description>Is your D, R, and A running 11.00/64? &lt;BR /&gt;&lt;BR /&gt;Are the compared logical volumes identical in setup?&lt;BR /&gt;&lt;BR /&gt;Do all of the servers have the same patch levels?&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;live free or die&lt;BR /&gt;harry</description>
      <pubDate>Mon, 05 Nov 2001 17:03:34 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607562#M725978</guid>
      <dc:creator>harry d brown jr</dc:creator>
      <dc:date>2001-11-05T17:03:34Z</dc:date>
    </item>
    <item>
      <title>Re: full mount point detection (A500)</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607563#M725979</link>
      <description>Hi Bill:&lt;BR /&gt;&lt;BR /&gt;I'm guessing that your D &amp;amp; R boxes are running 32-bit and you A box is running 64-bit.&lt;BR /&gt;&lt;BR /&gt;I assume that you mean fwrite is returning the expected number of items written even though the filesystem is full. &lt;BR /&gt;&lt;BR /&gt;I can't find any patches which match your problem. I think I would create a small program using write and observe the errno value&lt;BR /&gt;as well. This will prove very valuable in narrowing down the actual problem.&lt;BR /&gt;&lt;BR /&gt;Regards, Clay</description>
      <pubDate>Mon, 05 Nov 2001 17:10:13 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607563#M725979</guid>
      <dc:creator>A. Clay Stephenson</dc:creator>
      <dc:date>2001-11-05T17:10:13Z</dc:date>
    </item>
    <item>
      <title>Re: full mount point detection (A500)</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607564#M725980</link>
      <description>hi,&lt;BR /&gt;&lt;BR /&gt;  are all the systems running the same O/S version?&lt;BR /&gt;&lt;BR /&gt;  To narrow the problem, you can run a simple C script&lt;BR /&gt;containing fwrites to see&lt;BR /&gt;whether it works.  &lt;BR /&gt;&lt;BR /&gt;-raj</description>
      <pubDate>Mon, 05 Nov 2001 17:20:18 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607564#M725980</guid>
      <dc:creator>Roger Baptiste</dc:creator>
      <dc:date>2001-11-05T17:20:18Z</dc:date>
    </item>
    <item>
      <title>Re: full mount point detection (A500)</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607565#M725981</link>
      <description>Check your kernel param's, and  also:&lt;BR /&gt;&lt;BR /&gt;Synchronous-Write Data Logging&lt;BR /&gt;Use these buttons to specify how small write requests are to be handled when a file is opened with the O_SYNC flag set: &lt;BR /&gt;&lt;BR /&gt; Enabled ?? (default) Select this button to set the datainlog mount option when the mount_vxfs command is used to mount the file system. When synchronous-write logging is enabled, VxFS performs small synchronous-write requests by logging both the data and the new access-time change to the inode. &lt;BR /&gt;&lt;BR /&gt; Disabled ?? Select this button to set the nodatainlog mount option when the mount_vxfs command is used to mount the file system. When synchronous-write logging is disabled, VxFS records the data in the file and updates the inode synchronously before returning to the user's program. &lt;BR /&gt;&lt;BR /&gt; Which option you choose affects file-system performance (speed), but does not affect data integrity. If you expect large numbers of small write requests to the file system, enabling synchronous-write data logging can make file system write accesses somewhat faster. &lt;BR /&gt;&lt;BR /&gt;See mount_vxfs(1M) for more information about these options to the mount command when used with VxFS file systems.&lt;BR /&gt;&lt;BR /&gt;live free or die&lt;BR /&gt;harry&lt;BR /&gt;</description>
      <pubDate>Mon, 05 Nov 2001 17:23:07 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607565#M725981</guid>
      <dc:creator>harry d brown jr</dc:creator>
      <dc:date>2001-11-05T17:23:07Z</dc:date>
    </item>
    <item>
      <title>Re: full mount point detection (A500)</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607566#M725982</link>
      <description>Hi,&lt;BR /&gt;&lt;BR /&gt;Thanks for al the input. In answer to some of your questions:&lt;BR /&gt;&lt;BR /&gt;D and R boxes are 32 bit, the A server is 64 bit&lt;BR /&gt;&lt;BR /&gt;Additional information : After adding a call to statfs, the program was able to detect that the disk was full by examining f_bfree portion of the structure.&lt;BR /&gt;&lt;BR /&gt;Also, while the test program is running on the A server, repeated calls to bdf do not show the "avail" bytes decreasing...</description>
      <pubDate>Mon, 05 Nov 2001 19:43:04 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607566#M725982</guid>
      <dc:creator>Bill_14</dc:creator>
      <dc:date>2001-11-05T19:43:04Z</dc:date>
    </item>
    <item>
      <title>Re: full mount point detection (A500)</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607567#M725983</link>
      <description>Hi Bill:&lt;BR /&gt;&lt;BR /&gt;It sounds as though you need to report this as a bug to HP.&lt;BR /&gt;</description>
      <pubDate>Mon, 05 Nov 2001 19:57:46 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607567#M725983</guid>
      <dc:creator>A. Clay Stephenson</dc:creator>
      <dc:date>2001-11-05T19:57:46Z</dc:date>
    </item>
    <item>
      <title>Re: full mount point detection (A500)</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607568#M725984</link>
      <description>Bill(/Clay),&lt;BR /&gt;&lt;BR /&gt;As the manual page mentions, fwrite(3S) is a *buffered* (in the applications memory) write (normally BUFSIZ (1024 byte) buffers, see setbuf(3S)).&lt;BR /&gt;&lt;BR /&gt;As far as I know, disk space is *not* allocated until the buffer is full and fwrite tries to write the buffer with write(2). At *that* time the write(2) will fail and all *subsequent* fwrite-s will fail as well.&lt;BR /&gt;&lt;BR /&gt;So depending on how much data is lost, this may be (ab)normal behaviour.</description>
      <pubDate>Tue, 06 Nov 2001 11:40:26 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607568#M725984</guid>
      <dc:creator>Frank Slootweg</dc:creator>
      <dc:date>2001-11-06T11:40:26Z</dc:date>
    </item>
    <item>
      <title>Re: full mount point detection (A500)</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607569#M725985</link>
      <description>Yes Frank, I had the same thought. That is why I asked that Bill do a program using write and look at errno. I fully expected it to return ENOSPC. I would then like to look at the difference in default buffer sizes on 32-bit and 64-bit 11x. I am more concerned at the difference in behavior in the two OS variants.</description>
      <pubDate>Tue, 06 Nov 2001 13:37:38 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607569#M725985</guid>
      <dc:creator>A. Clay Stephenson</dc:creator>
      <dc:date>2001-11-06T13:37:38Z</dc:date>
    </item>
    <item>
      <title>Re: full mount point detection (A500)</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607570#M725986</link>
      <description>Hi,&lt;BR /&gt;&lt;BR /&gt;I have added a display of errno to the test program. At a point when the mount was full&lt;BR /&gt;(from another terminal)&lt;BR /&gt;vxfs: mesg 001: vx_nospace - /dev/vg00/lvol8 file system full (2 block extent)&lt;BR /&gt;cp: bad copy to a.c: write: No space left on device&lt;BR /&gt;&lt;BR /&gt;The test program was still running, as follows:&lt;BR /&gt;Tue Nov  6 06:45:48 MST 2001&lt;BR /&gt;status = :1:, iteration 1680, len 23 errno = 0&lt;BR /&gt;Tue Nov  6 06:45:48 MST 2001&lt;BR /&gt;status = :1:, iteration 1681, len 23 errno = 0&lt;BR /&gt;Tue Nov  6 06:45:48 MST 2001&lt;BR /&gt;status = :1:, iteration 1682, len 23 errno = 0&lt;BR /&gt;Tue Nov  6 06:45:48 MST 2001&lt;BR /&gt;status = :1:, iteration 1683, len 23 errno = 0&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Any thoughts?</description>
      <pubDate>Tue, 06 Nov 2001 13:48:07 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607570#M725986</guid>
      <dc:creator>Bill_14</dc:creator>
      <dc:date>2001-11-06T13:48:07Z</dc:date>
    </item>
    <item>
      <title>Re: full mount point detection (A500)</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607571#M725987</link>
      <description>Additional information :&lt;BR /&gt;&lt;BR /&gt;When the program did "notice" that there was a problem, here were the results:&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;vxfs: mesg 001: vx_nospace - /dev/vg00/lvol8 file system full (1 block extent)&lt;BR /&gt;status = :0:, iteration 325, len 23 errno = 0&lt;BR /&gt;Tue Nov  6 06:59:03 MST 2001&lt;BR /&gt;Exiting from ferror return 32&lt;BR /&gt;Tue Nov  6 06:59:03 MST 2001&lt;BR /&gt;&lt;BR /&gt;Note that the fwrite returned 0 items written, but errno was still zero. It took invoking ferror() to determine that there was a problem , but the return code equated to:&lt;BR /&gt;32      EPIPE   Broken pipe&lt;BR /&gt;&lt;BR /&gt;Bill.</description>
      <pubDate>Tue, 06 Nov 2001 14:03:44 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607571#M725987</guid>
      <dc:creator>Bill_14</dc:creator>
      <dc:date>2001-11-06T14:03:44Z</dc:date>
    </item>
    <item>
      <title>Re: full mount point detection (A500)</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607572#M725988</link>
      <description>Hi Bill:&lt;BR /&gt;&lt;BR /&gt;It appears as though we are missing a piece of data. Perchance is your fwrite writing to a pipe?</description>
      <pubDate>Tue, 06 Nov 2001 14:17:54 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607572#M725988</guid>
      <dc:creator>A. Clay Stephenson</dc:creator>
      <dc:date>2001-11-06T14:17:54Z</dc:date>
    </item>
    <item>
      <title>Re: full mount point detection (A500)</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607573#M725989</link>
      <description>Here is what I am using. I was under the impression that this would be a file stream:&lt;BR /&gt;&lt;BR /&gt;main() {&lt;BR /&gt;&lt;BR /&gt;        FILE *outfile;&lt;BR /&gt;        int status = 0;&lt;BR /&gt;        int fstatus = 0;&lt;BR /&gt;        unsigned char bf[24];&lt;BR /&gt;        int cnt;&lt;BR /&gt;&lt;BR /&gt;        strcpy(bf,"xxxxxxxxxxxxxxxxxxxxxxx");&lt;BR /&gt;&lt;BR /&gt;        outfile = fopen("tmp.log","a");&lt;BR /&gt;&lt;BR /&gt;         setbuf(outfile,NULL);   &lt;BR /&gt;&lt;BR /&gt;        cnt = 0;&lt;BR /&gt;        for (;;) {&lt;BR /&gt;                status = fwrite(&amp;amp;bf,24,1,outfile);&lt;BR /&gt;                printf("status = :%d:, iteration %d, len %d errno = %d\n",status&lt;BR /&gt;,cnt,strlen(bf),errno);&lt;BR /&gt;                fflush(stdout);&lt;BR /&gt;                system("date");&lt;BR /&gt;                fstatus = ferror(outfile);&lt;BR /&gt;                if (fstatus) {&lt;BR /&gt;                        printf("Exiting from ferror return %d\n",fstatus);&lt;BR /&gt;                        system("date");&lt;BR /&gt;                        fflush(stdout);&lt;BR /&gt;                        break;&lt;BR /&gt;                }&lt;BR /&gt;        cnt++;&lt;BR /&gt;        disk_check();&lt;BR /&gt;        usleep(10000);&lt;BR /&gt;        errno = 0;&lt;BR /&gt;        }&lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;disk_check() {&lt;BR /&gt;&lt;BR /&gt; char *pth ;&lt;BR /&gt;    char nam[80];&lt;BR /&gt;    struct statfs *statbuff;&lt;BR /&gt;    int status=0;&lt;BR /&gt;    float tmp;&lt;BR /&gt;&lt;BR /&gt;    statbuff = (struct statfs *) malloc(sizeof(struct statfs));&lt;BR /&gt; strcpy(nam,"/home/billc");&lt;BR /&gt;    pth = &amp;amp;nam[0];&lt;BR /&gt;&lt;BR /&gt;    status = statfs(pth,statbuff);&lt;BR /&gt;&lt;BR /&gt;    printf(" avail = %d\n",statbuff-&amp;gt;f_bavail);&lt;BR /&gt;/*&lt;BR /&gt;    if (statbuff-&amp;gt;f_bfree &amp;lt; 1000){&lt;BR /&gt;                printf("Disk space exit\n");&lt;BR /&gt;                fflush(stdout);&lt;BR /&gt;                exit(1);&lt;BR /&gt;        }&lt;BR /&gt;*/&lt;BR /&gt;&lt;BR /&gt;}</description>
      <pubDate>Tue, 06 Nov 2001 14:20:50 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607573#M725989</guid>
      <dc:creator>Bill_14</dc:creator>
      <dc:date>2001-11-06T14:20:50Z</dc:date>
    </item>
    <item>
      <title>Re: full mount point detection (A500)</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607574#M725990</link>
      <description>You write very small records, only 23 (or 24) bytes per record, so you can fwrite many records to the 1KB buffer *in the application's memory*, before fwrite has to call write(2) to write the buffer to the filesystem. I would expect that after writing many (+/- 45) records *after* the disk is full, the write(2) would fail and errno would be set.&lt;BR /&gt;&lt;BR /&gt;Note however that the internal operation of fwrite is not documented and hence not guaranteed, i.e. errno *might* be set, but nothing says that errno *must* be set. Personally that strikes me as somewhat odd, because for example fprintf(3S) *does* refer to errno and the underlying write(), but fwrite(3S) does not. Strange, but apparently standard (see "STANDARDS CONFORMANCE").&lt;BR /&gt;&lt;BR /&gt;After reading both manual pages, I think that your problem might be solved if you use sprintf instead of fwrite (assuming your records are 'text' records).&lt;BR /&gt;&lt;BR /&gt;Another minor point: You do not save errno before printing it with printf. I.e. if printf clears errno, your code will fail. See what happens if you do it correctly.&lt;BR /&gt;&lt;BR /&gt;And then there are the vxfs mount options which Harry referred to. Those might influence thing too. See mount_vxfs(1M) and write(2) and the other referenced manual pages for details.</description>
      <pubDate>Tue, 06 Nov 2001 14:31:41 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607574#M725990</guid>
      <dc:creator>Frank Slootweg</dc:creator>
      <dc:date>2001-11-06T14:31:41Z</dc:date>
    </item>
    <item>
      <title>Re: full mount point detection (A500)</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607575#M725991</link>
      <description>Hi Bill:&lt;BR /&gt;&lt;BR /&gt;Since you are using setbuf(outfile,(char *) NULL), your output is unbuffered. The rule when using streams is that only ferror is the reliable indicator of errors. Since you are using unbuffered output anyway, I suggest that you change to using open(),read(),write(), and close(), and possibly lseek(). That way I know that errno will be set and you won't have to do any hokey and slow filesystem stuff. I still think if you can make a small test program that behaves differently on 32-bit and 64-bit, you should report that. I don't really care if the fwrite zigs or zags but I do care that if it zigs in 32-bit land that it also zigs in 64-bit land. One minor point: Start using the sizeof() operator rather than hard-coding number of bytes to read/write; it will make you code much safer and more portable.&lt;BR /&gt;&lt;BR /&gt;Regards, Clay</description>
      <pubDate>Tue, 06 Nov 2001 14:56:08 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607575#M725991</guid>
      <dc:creator>A. Clay Stephenson</dc:creator>
      <dc:date>2001-11-06T14:56:08Z</dc:date>
    </item>
    <item>
      <title>Re: full mount point detection (A500)</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607576#M725992</link>
      <description>Hi,&lt;BR /&gt;&lt;BR /&gt;After careful examination of what was going on on the system, I believe that the original problem reported to me on this issue was one of perception. It looks like the code will actually behave correctly, but because the bdf display showed 0 for available, the person testing it interpreted that as 0 bytes available.&lt;BR /&gt;&lt;BR /&gt;In reality, I was able to see the output file still gaining in size until all of the space had been consumed.&lt;BR /&gt;&lt;BR /&gt;Thanks to all responders for your inputs!&lt;BR /&gt;&lt;BR /&gt;Bill</description>
      <pubDate>Tue, 06 Nov 2001 15:03:35 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/full-mount-point-detection-a500/m-p/2607576#M725992</guid>
      <dc:creator>Bill_14</dc:creator>
      <dc:date>2001-11-06T15:03:35Z</dc:date>
    </item>
  </channel>
</rss>

