Patches to get extended FILE solution on Solaris 10

The issue was discussed in the blog post Solaris: Workaround to stdio's 255 open file descriptors limitation.

If the system is running any existing major customer releases of Solaris 10 i.e., Solaris 10 3/05 through Solaris 10 11/06, extended FILE facility can be installed on these systems by applying the kernel patch, 125100-04 or later & libc patch, 120473-05 or later.

Systems running Solaris Express (SX) or any OpenSolaris distribution after build 39 do not need the patches mentioned above to get the extended FILE solution for stdio's 256 open files limitation.

Do not forget to read the man pages of extendedFILE(5), enable_extended_FILE_stdio(3C), fopen(3C), fdopen(3C) and popen(3C) to enable the extended FILE solution by pre-loading /usr/lib/extendedFILE.so.1 (run-time solution) or by using the enhanced stdio's interfaces, fopen(), fdopen(), popen() or with the new interface enable_extended_FILE_stdio().

--
Acknowledgments:
Peter Shoults, Sun Microsystems

Comments:

Hi I need to know if the extendedFILE.so.1 workaround is applicable to Solaris 2.9 If so, do I need to install a PTF/Patch in order to have this library installed and working? Please let me know Thanks Antonio

Posted by Antonio Sgro on August 06, 2007 at 06:16 AM PDT #

Hi Antonio,

As of today extendedFILE facility is not available on Solaris 9. Please check this technical article for more: http://developers.sun.com/solaris/articles/stdio_256.html

Posted by Giri Mandalika on August 06, 2007 at 06:28 AM PDT #

Giri,

As of today, is there a Sol9 patch for this issue?

If not, do you have any suggestions?

Posted by Benjamin Valenti on March 19, 2009 at 10:36 PM PDT #

No, Benjamin. And I'm not aware of any plans to port this solution to Solaris 9.

>> If not, do you have any suggestions?

First of all, I recommend confirming the root cause of the issue to be the stdio's 256 open files limitation. In majority of the cases I'd seen, most of the lower order file descriptors (between 3 and 255) are used up by the network connections. If that's the case, I suggest interposing on the socket system calls, and to duplicate the returned [lower order] file descriptor to any free descriptor above 255 using fcntl(), then finally to free up the lower order descriptor for later consumption by stdio's system calls.

For your reference: the above approach might mitigate the issue, and deters the failure up to some extent.

The following page shows how to interpose on a function call:
http://technopark02.blogspot.com/2005/05/solaris-hijacking-function-call.html

Posted by Giri Mandalika on April 12, 2009 at 07:13 PM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed
About

Benchmark announcements, HOW-TOs, Tips and Troubleshooting

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today