Salesforce

DB with -directio leaves file handles open in Connect&Disconnect cycle after ADDONLINE

« Go Back

Information

 
TitleDB with -directio leaves file handles open in Connect&Disconnect cycle after ADDONLINE
URL Name000032220
Article Number000152733
EnvironmentProduct: OpenEdge
Version: 10.1x, 10.2x, 11.x, 12.0x, 12.1x
OS: UNIX
Other: PROSTRCT ADDONLINE
Question/Problem Description
After adding extents online (addonlineclient sessions eventually fail to open a connection to the database having exhausted filehandles
Clients are unable to open a connection to the database as all system file handles had been allocated
Client session connection fails with error 43 errno 24: Too many open files
File handles are exhausted (ulimit -n)

Database extents were added online: prostrct addonline.
Database started with -directio startup parameter which uses Unbuffered Synchronous I/O (O_RDWR|O_DSYNC) 

Strace of the client session shows the added extent(s) are opened with two file handles:
open("../dbname_7.d6", O_RDWR) = 29
open("../dbname_7.d6", O_RDWR|O_DSYNC) = 30

Strace of the client session shows older extents are opened with on file handle:
open("../dbname_7.d5", O_RDWR|O_DSYNC) = 28
Steps to Reproduce
Clarifying Information
Without directio file handles are properly closed on client disconnect.
After database shutdown and restart with -directio, file handles are closed on client disconnect as they should be.
errno 24: Too many open files
Error MessageCannot find or open file <file-name>, errno = 0. (43)
Cannot find or open file <file-name>, errno = 24 (43)
Defect NumberDefect PSC00245008 / OE00221787; Defect PSC00361789 / OCTA-3841
Enhancement Number
Cause
New connections opens double amount of file handles after prostrct addonline.
  • Older extents are opened with with “UNBUFIO” once == O_RDWR|O_DSYNC
  • Newly added extents are opened with “BOTHIO” which results 2 file handles, one for “BUFIO”, one for “UNBUFIO”
Resolution
Upgrade to OpenEdge 12.2 where PROSTRCT addonline sets the mode for newly added extents as "UNBUFIO"
Workaround
When using the -directio database startup parameter, schedule downtime to add extents to the database.
Notes
Keyword Phrase
Last Modified Date11/20/2020 7:30 AM

Powered by