SocketChannel and The GC

I wrote a socks proxy using java.nio.channels.SocketChannel api. I noticed that the number of os handles the program opened over time was approaching tens of thousands and increasing while I have the program running. I wrote a simple code to test if the SocketChannel was creating these handles and yes it was
import java.nio.channels.SocketChannel;
import java.net.InetSocketAddress;
public class JTest {
     static public void main(String args[]) {
          while(true) {
               try {
                    SocketChannel s = SocketChannel.open();
                    s.connect(new InetSocketAddress("sf.net",80));
                    System.out.println("connected");
                    Thread.sleep(100);
                    //s.close();
               catch(Exception e) { }
}just run that code with s.close() commented. Uncommenting the close method will solve the problem but I assumed the GC would have cleaned up the SocketChannel removing all open handles. My proxy was issuing a close on the socket channel assoicated socket and that was the main reason for the multiplying os Handles. Tested on Win Xp SP2 java 1.5.0_04-b05.

but I assumed the GC would have cleaned up the
SocketChannel removing all open handles. The gc is not magic and does not always clean sys resources for you.
You have no idea when the gc will run. whn you are finished with a
system resource, close/dispose it.Ever so true. I'd like to add that all the gc cares about is memory; When
an attempt to allocate more memory fails, only then the finalizers of the
collected objects are run for sure. If the native OS can handle that many
open resources (sockets etc.) without the application running out of
memory, the gc couldn't care less.
kind regards,
Jos

Similar Messages

  • Non-blocking SocketChannel and close - huh?

    It looks like closing a socketchannel that is in non-blocking mode can result in a dead drop of the connection, with some bytes that have already been sent and accepted (as in, 'consumed' from the buffer) being completely dropped.
    In fact, I'm generally confused: Actual C non-blocking code has a similar setup for 'close' as you can see in SocketChannel's OP_CONNECT behaviour - just because you want to connect the socket doesn't mean it magically happends without blocking. Wait for a ready flag, then try again.
    It should work the same way with close (you try to close, but it may not be possible without blocking).
    Is this a huge gaping bug that no one quite figured out just yet, or did I miss something? I loathe to turn on linger, as that's just a crapshoot (you never know if it actually gets through. You could run into funny surprises once the server gets a bit busy. I'd rather not) and tends to cause massive leaks on linux, at least according to some google searches.
    There seems to be slightly better performance (in that I have always received all data sofar) if I close the socket instead of the channel (socketChannel.socket().close() instead of socketChannel.close()) - but this has been a random attempt at 'making it work', and I can't find any documentation that backs up that this will DEFINITELY not lose any information without letting me know somehow. That still sounds impossible with this approach.

    Actual C non-blocking code has a similar setup for
    'close' as you can see in SocketChannel's
    OP_CONNECT behaviour ...No it doesn't. I don't know what you mean by this.
    Closing a socket is asynchronous, but it shouldn't lose any data - if the data can be delivered it will be, followed by the FIN. You don't know when it is delivered, and you don't get to hear about any errors such as an RST coming from the other end, say if it decided to close before reading all the data, or if some intermediate router hung you up.
    I'm wondering if you are really dealing with all the short write and zero length write possibilities, i.e. whether the data isn't really still in your output buffer. Don't wish to teach you to suck eggs but there are some subtleties here.
    Setting a positive linger timeout doesn't really help because Java doesn't tell you if the timeout expired. (I only asked for this about four years ago). You get to wait while any pending data is delivered, but you still have to guess about whether it all went or the timeout expired, and the behaviour after the timeout expires is platform-dependent: some (Windows) issue an RST, others (Unix) keep trying.
    Blocking or non-blocking mode shouldn't make any difference to this (except that Linux will block on a positive linger timeout even in non-blocking mode, which is wrong), and whether you close the channel or the socket is immaterial as one calls the other anyway.
    The reason why OP_CONNECT is different in blocking/non-blocking modes is that in blocking mode it won't return until the SYN-ACK is received, while in non-blocking mode it just sends the SYN and relies on you calling connect() again (at the C level) to collect the SYN-ACK, or not - this is what finishConnect() tells you.
    tends to cause massive leaks on linux, at least
    according to some google searchesIt can't, unless you are referring to the Helix client thing, which appears to be just a badly designed C++ class library with, for some reason, its own linger implementation outside the kernel.

  • I am trying to update Adobe Bridge and Photoshop CS6, because it is not opening my CR2 files taken by my Canon 6D.  I have tried to go to help updates, and the software says that it is "Up to Date".  However, if I view the plug-in, it says that Camera R

    I am trying to update Adobe Bridge and Photoshop CS6, because it is not opening my CR2 files taken by my Canon 6D.  I have tried to go to help > updates, and the software says that it is "Up to Date".  However, if I view the plug-in, it says that Camera Raw is only version 7.1.  I can not find a direct download for Camera Raw 7.3, only the DNG converter, NOT CAMERA RAW!  Please Help!

    Did you fix your issue?  I am having the same one

  • I have bought a film from itunes and the credit has come out of my account, but i can't find the film anywhere, it said it was downloading, then i left the laptop and on return i couldn't find the film. how do i find the film?

    i have bought a film from itunes and the credit has come out of my account, but i can't find the film anywhere, it said it was downloading, then i left the laptop and on return i couldn't find the film. how do i find the film?

    Maybe it is in the Purchased category of iTunes,
    Try going there

  • I am trying to restore my catalog having previously done a back up to an external hard drive and subsequently an incremental backup. I am using Photoshop Elements 11 and the only option given in the restore procedure is to open a .tly file.

    I have done this but now the restore function is asking for yet another file, which i assume to be the original back up, but that is the only .tly file since the only other relevant file appears to be called catalog.buc but that is just not visible when using the restore function? How do I continue from here with this restoration of my catalog?

    Martin_Had a écrit:
    Thank you Andaleeb. I appear to have an old backup of a year ago, and a more recent full back up plus an incremental backup.
    Regrettably I don't really understand what is going on because firstly the restore does not complete its cycle so I cannot see what that backup file contains and secondly all I have read would suggest that the .tly file is the full backup and the catalog.buc file is the incremental backup. For the present, the catalog shows the photos for 2014 which makes me think I might have backed from the old back up file.
    I am minded to create another catalog and try again.
    Any views on what I can do?
    A backup (full or incremental) is a folder, not a file. It contains renamed pictures file copies as well a copies of the files and subfolders of the original catalog. The catalog.buc is a renamed copy of the database of your original catalog while the backup.tly. That backup.tly file contains the information to restore the renamed pictures where you decide, the original location or a new custom one. You can't do anything with the backup yourself, only the restore process can do the job if it finds the backup.tly file. In the case of an incremental backup, you have to tell the restore process where to find the incremental backup folder; it finds the backup.tly file in that folder and finds what is to restore there; then it asks you for the previous backup folder (in your case the full backup); you then browse to that full backup folder so that the restore process can find find the backup.tly there; the restore then deals with the rest of the files to restore.

  • I am trying to import developed images from LightRoom 5 in o Photoshop 6.  I am receiving this message and the images will not open.....'Could not open scratch file because the file is locked, you do not have necessary access permissions or another progra

    I am trying to import developed images from LightRoom 5 Photoshop 6 for further editing.  I am receiving this message and the images will not open.....'Could not open scratch file because the file is locked, or you do not have necessary access permissions or another program is using the file.  Use the 'Properties' command in the Windows Explorer to unlock the file. How do I fix this?  I would greatly appreciate it if you would respond with terms and procedures that a computer ignorant user, such as me, will understand.   Thanks.

    Have you tried restoring the Preferences yet?

  • Hi there, I am trying to connect to my server at work from home using a vpn connection. It connects fine and the time ticks along, but when i click go - connect to server, it comes up with connection failed. Please help!

    Hi there, I am trying to connect to my server at work from home using a vpn connection. It connects fine and the time ticks along, but when i click go - connect to server, it comes up with connection failed. Please help!

    ... when i click go - connect to server, it comes up with connection failed.
    If you're trying to connect to a Bonjour server on the remote network, that won't work over a layer 3 VPN. Use something like Hamachi or one of the SSH-tunnelling Bonjour proxy apps for that.

  • Each time I try to synch photos from my Windows 7 PC to my iPad2, iTunes stops working, and the error report says Problem Event Name:     APPCRASH   Application Name:     iTunes.exe   Application Version:     10.3.1.55   Application Timestamp:     4deec35

    Each time I try to synch photos from my Windows7 PC to my iPad2, iTunes stops working and the error message is:
    Problem Event Name:                          APPCRASH
      Application Name:                             iTunes.exe
      Application Version:                           10.3.1.55
      Application Timestamp:                    4deec351
      Fault Module Name:                          ntdll.dll
      Fault Module Version:                        6.1.7601.17514
      Fault Module Timestamp:                 4ce7ba58
      Exception Code:                                  c0000005
      Exception Offset:                                0002e3fb
      OS Version:                                          6.1.7601.2.1.0.768.3
      Locale ID:                                             1033
      Additional Information 1:                  0a9e
      Additional Information 2:                  0a9e372d3b4ad19135b953a78882e789
      Additional Information 3:                  0a9e
      Additional Information 4:                  0a9e372d3b4ad19135b953a78882e789
    I reloaded iTunes 10 (64 bit) successfully, but the problem remains the same.
    Any suggestions?

    I looked in the folder from which I want to synch photos, but there is no such thing as an "ipod photo cache" in that folder, or sub-folders, as suggested in the link which you were nice enough to provide.
    I have also tried removing photos from my iPad2 Photos App, and "iTunes has stopped working" shows up  again as soon as I click on the "Synch photos from" button.

  • Since installing LTR 5.4, which I've now upgraded to 5.6, I've encountered repeated slowness and malfunctions in operations, especially when using the Compare View function and the Tab key to open and close the right and left side panels.  Such problems n

    Since installing LTR 5.4, which I've now upgraded to 5.6, I've encountered repeated slowness and malfunctions in operations, especially when using the Compare View function and the Tab key to open and close the right and left side panels.  Such problems never arose during two years of using LTR-4 and nothing else has changed on my computer.  I have a pretty simple system with only a few plug-ins, which are usually not in operation.  I have 12GB of RAM in my Windows 7 PC.  I could illustrate these problems with screen shots if you would tell me how to submit screen shots.  Otherwise I will try to describe the problems in words.
    The problem is clearly cumulative, growing worse as usage time passes.  Compare View feature gradually slows down and eventually seems to choke as my work session proceeds. If I Exit LTR and re-enter and start all over, things will work normally for maybe 30 minutes, but then the Compare View feature begins to become very slow to respond.   In a recent example with my screen full of thumbnails in Library mode I highlighted two images to compare. LTR started to open the Compare View screen by first having the top row of thumbnails disappear to be replaced by the "SELECT" and "CANDIDATE" words in their spaces  (but no images), but Compare View never succeeded in gaining control of the screen. After some seconds the top row of thumbnails reasserted its position and the Compare View windows disappeared. But LTR kept trying to bring them back. Again the top row of thumbnails would go away, Select and candidate would reappear, try again, and give up. This went on for at least 2-3 minutes before I tried to choose File and Exit, but even that did not initially want to respond. It doesn't like to accept other commands when it's trying to open Compare View. Finally it allowed me to exit.
    To experiment I created a new catalog of 1100 images.  After 30-40 minutes, the Compare View function began to operate very slowly. With left and right side panels visible and two thumbnails highlighted, hitting Compare View can take half a minute before the two mid-size  images open in their respective SELECT and CANDIDATE windows. When the side panels are open and two images are in the Select/Candidate spaces, hitting the Tab button to close the side panels produces a very delayed response--25-30 seconds to close them, a few more seconds to enlarge the two images to full size. To reverse the process (i.e., to recall the two side panels), hitting Tab would make the two sides of the screen go black for up to a minute, with no words visible. Eventually the info fields in the panels would open up.
    I also created a new user account and imported a folder of 160 images. After half an hour Compare View began mis-placing data.  (I have a screen shot to show this.)  CANDIDATE appears on the left side of SELECT, whereas it should be on the right. The accompanying camera exposure data appears almost entirely to the left of the mid-screen dividing line. Although the Candidate and Select headings were transposed, the image exposure data was not, but the data for the image on the right was almost entirely to the left of the line dividing the screen in two.
    Gurus in The Lightroom Forum have examined Task Manager data showing Processes running and Performance indicators and they see nothing wrong.  I could also send screen shots of this data.
    At this point, the only way I can process my images is to work 30-40 minutes and then shut down everything, exit, and re-start LTR.  This is not normal.  I hope you can find the cause, and then the solution.  If you would like to see my screen shots, tell me how to submit them.
    Ollie
    [email protected]

    Since installing LTR 5.4, which I've now upgraded to 5.6, I've encountered repeated slowness and malfunctions in operations, especially when using the Compare View function and the Tab key to open and close the right and left side panels.  Such problems never arose during two years of using LTR-4 and nothing else has changed on my computer.  I have a pretty simple system with only a few plug-ins, which are usually not in operation.  I have 12GB of RAM in my Windows 7 PC.  I could illustrate these problems with screen shots if you would tell me how to submit screen shots.  Otherwise I will try to describe the problems in words.
    The problem is clearly cumulative, growing worse as usage time passes.  Compare View feature gradually slows down and eventually seems to choke as my work session proceeds. If I Exit LTR and re-enter and start all over, things will work normally for maybe 30 minutes, but then the Compare View feature begins to become very slow to respond.   In a recent example with my screen full of thumbnails in Library mode I highlighted two images to compare. LTR started to open the Compare View screen by first having the top row of thumbnails disappear to be replaced by the "SELECT" and "CANDIDATE" words in their spaces  (but no images), but Compare View never succeeded in gaining control of the screen. After some seconds the top row of thumbnails reasserted its position and the Compare View windows disappeared. But LTR kept trying to bring them back. Again the top row of thumbnails would go away, Select and candidate would reappear, try again, and give up. This went on for at least 2-3 minutes before I tried to choose File and Exit, but even that did not initially want to respond. It doesn't like to accept other commands when it's trying to open Compare View. Finally it allowed me to exit.
    To experiment I created a new catalog of 1100 images.  After 30-40 minutes, the Compare View function began to operate very slowly. With left and right side panels visible and two thumbnails highlighted, hitting Compare View can take half a minute before the two mid-size  images open in their respective SELECT and CANDIDATE windows. When the side panels are open and two images are in the Select/Candidate spaces, hitting the Tab button to close the side panels produces a very delayed response--25-30 seconds to close them, a few more seconds to enlarge the two images to full size. To reverse the process (i.e., to recall the two side panels), hitting Tab would make the two sides of the screen go black for up to a minute, with no words visible. Eventually the info fields in the panels would open up.
    I also created a new user account and imported a folder of 160 images. After half an hour Compare View began mis-placing data.  (I have a screen shot to show this.)  CANDIDATE appears on the left side of SELECT, whereas it should be on the right. The accompanying camera exposure data appears almost entirely to the left of the mid-screen dividing line. Although the Candidate and Select headings were transposed, the image exposure data was not, but the data for the image on the right was almost entirely to the left of the line dividing the screen in two.
    Gurus in The Lightroom Forum have examined Task Manager data showing Processes running and Performance indicators and they see nothing wrong.  I could also send screen shots of this data.
    At this point, the only way I can process my images is to work 30-40 minutes and then shut down everything, exit, and re-start LTR.  This is not normal.  I hope you can find the cause, and then the solution.  If you would like to see my screen shots, tell me how to submit them.
    Ollie
    [email protected]

  • This morning, Firefox stopped opening .pdf documents that I am trying to retrieve from websites. It does not download them, and the page goes blank, with nothing more happening. What do I do to fix it?

    I went to the FAA website, and I needed to review a document. I clicked on the link, the page turned blank, but I never saw the document. I tried again, but I still could not get the document. Word documents still bring up the dialog box allowing me to open the document. I went to another website to find additional information on the project I am working on, and I am experiencing the same problem, when I click on a link to a pdf, it will not open, and the download dialog box does not open.
    I have tried looking at applications and plugins, but everything seems to be fine. What do I do to fix this?
    Thanks,
    Anne

    Using the Adobe Reader plugin with Firefox
    * https://support.mozilla.com/en-US/kb/Using%20the%20Adobe%20Reader%20plugin%20with%20Firefox
    Opening PDF files within Firefox
    * https://support.mozilla.com/en-US/kb/Opening%20PDF%20files%20within%20Firefox
    Check and tell if its working.

  • I am not able to launch FF everytime i tr to open it, it says FF has to submit a crash report, i even tried doing that and the report was submitted too, but stiil FF did not start, and the problem still persists, please help me solve this issue in English

    Question
    I am not able to launch FF everytime i try to open it, it says FF has to submit a crash report,and restore yr tabs. I even tried doing that and the report was submitted too, but still FF did not start, and the problem still persists, please help me solve this issue
    '''(in English)'''

    Hi Danny,
    Per my understanding that you can't get the expect result by using the expression "=Count(Fields!TICKET_STATUS.Value=4) " to count the the TICKET_STATUS which value is 4, the result will returns the count of all the TICKET_STATUS values(206)
    but not 180, right?
    I have tested on my local environment and can reproduce the issue, the issue caused by you are using the count() function in the incorrect way, please modify the expression as below and have a test:
    =COUNT(IIF(Fields!TICKET_STATUS.Value=4 ,1,Nothing))
    or
    =SUM(IIF(Fields!TICKET_STATUS=4,1,0))
    If you still have any problem, please feel free to ask.
    Regards,
    Vicky Liu
    Vicky Liu
    TechNet Community Support

  • Is there a way of connecting the ipad to the smart board in the classroom, so that the smartboard is the control, and the ipad is displaying what is on the smartboard? This is to help a visually impaired child see what is on the smartboard.,

    Is there a way of connecting the ipad to the smart board in the classroom, so that the smartboard is the control, and the ipad is displaying what is on the smartboard? This is to help a visually impaired child see what is on the smartboard.

    Absolutely!
    Install Splashtop2 on the PC and enable it to be controlled or ran from iPad or Reflection to simply allow iPad to serve as PC unwired monitor. With Splashtop and an Apple TV connected, you use the smartboard as usual, yet the PC and iPad can see the same content. The impaired child can even interact with the Smart Board via the iPad as if he were writing directly on the big screen. Erasing functions can be done by touching the Smart Board manual controls. Several variables are in play that cause this lack of functionality:
        Apple won't permit PC software that infringes its proprietary apps.
        Smart Board companies refuse to develop iPad apps because they feel threatened and are being replaced by iPads
        School districts think Apple TV is meant for copyright infringement and could expose them to safe harbor lawsuits
        Network administrators make it impossible to login Apple TVs because they don't want the streaming occurring
        Classrooms are not able to keep up with the technology of using the iPad
        Clicker companies refuse to play with iPad because they see it as a potential threat to their core business clients
        Apple is not working as hard as it could to exploit its capabilities in education, thus losing money in iPad sales
    The bottom line is that we educators and technology developers are hurting our childern with petty conflicts.

  • My ipod touch is not list as a device on itunes.  When I tried do update itunes, I get a ox8007054f error code and the update will not complete.

    My ipod touch is not listed as a device when connected to my computer.  As suggested I attempted to download the latest of itunes.  I got an
    ox8007054f error code and the down load will not complete.  I have also tried to restore my computer to an earlier setting, but it will
    not accept the change.

    Have you looked at this completed previos discussion. It discusses 0x8007054F.
    Re: Error message when trying to install iTunes

  • FM to read the different steps in workflow and the status at each step

    Hi All,
    Is there any FM in SAP which gives the detail roadmap of the steps taken in a workflow and the diffrent status or decision at each step.
    I am looking for something like what you see when you click on the "STARTED WORKFLOW" in the business workplace outbox.
    Which shows up the "steps in the process so far "  and the decision and the agents for each of them.
    Thanks,
    Charan.

    Hi,
      You can get the status according to the task. please check with FM "SAP_WAPI_GET_WI_DELTA".
    Regards
    SM Nizamudeen

  • Since yesterday, I have been seeing "bookmark syncing in progress" on the status bar for minutes at a time, and the browser becomes almost useless as it freezes.

    At some point, I'll see 'bookmark syncing failed', and the browser then acts normally, BUT the behavior is cyclic. I uninstalled 7.0.1 and installed 3.6.20 and the behavior continued. I disabled sync in both installs and the behavior continued. I even deleted the sync server URL in about:config and the behavior *continued*. Oddly, the logs don't show any failures, and report success every time.
    BTW, the bug-reporting procedure needs serious clean-up. It is very difficult to navigate the maze. And the help files are atrocious.

    That maybe fixes some issues, but not this one. This one has to do with Sync and is getting seriously annoying.

Maybe you are looking for