<?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: Find why process uses 100% cpu. in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862437#M10567</link>
    <description>Edward,&lt;BR /&gt;&lt;BR /&gt;you did not look at enough call frames in SDA. You need to continue with SDA&amp;gt; SHOW CALL/NEXT, until you get a return address in P0 space of your process. SDA&amp;gt; CLUE CALL might do a better job here.&lt;BR /&gt;&lt;BR /&gt;This is a typical scenario, an IO seems to fail and the software just re-tries the IO without any retry limits and such.&lt;BR /&gt;&lt;BR /&gt;You need to find the most recent call frame in the application code and then goto the .MAP and the source code. If you don't have either, you need to take this problem to the vendor/maintainer of that piece of software.&lt;BR /&gt;&lt;BR /&gt;If you are running a recent version of OpenVMS (V7.3-2 or higher), you could use the PCS$SDA extension (PC sampling) to collect PC samples from your looping process.&lt;BR /&gt;&lt;BR /&gt;For older version, you could try to collect this type of info with running SHOW PROC/CONT/ID=xxx after a SET HOST/LOG 0. Once run for a while, stop it and logout the SET HOST 0 session. Then edit the SETHOST.LOG file, which includes all the updated PC values and you should be able to extract those values and sort them. You are looking for PC values in P0 space, to be able to map them to your image. SDA&amp;gt; PCS is much better !&lt;BR /&gt;&lt;BR /&gt;Volker.</description>
    <pubDate>Thu, 14 Sep 2006 00:31:16 GMT</pubDate>
    <dc:creator>Volker Halle</dc:creator>
    <dc:date>2006-09-14T00:31:16Z</dc:date>
    <item>
      <title>Find why process uses 100% cpu.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862433#M10563</link>
      <description>Hi All,&lt;BR /&gt;&lt;BR /&gt;I'm a little lost with debugging this, and not sure where to turn....&lt;BR /&gt;&lt;BR /&gt;When running an RPC Broker (in M using GT.M) everything works fine.&lt;BR /&gt;GT.M starts a detached process that runs the M code providing the RPC Broker.&lt;BR /&gt;If you then telnet to the RPC port and disconnect, the detached process then goes crazy using 100% of the CPU.&lt;BR /&gt;&lt;BR /&gt;How can I find out *why* it is doing this?&lt;BR /&gt;Is it TCPware that is feeding it nul's? or is it a bug in GT.M or the M code itself?&lt;BR /&gt;&lt;BR /&gt;I can do a SHOW PROC/CONT on the detached process and can see that the image is GTM$DMOD, but will any of the other details tell me where to look for any bugs?&lt;BR /&gt;&lt;BR /&gt;The detached process is being started by an unprivileged account (NETMBX and TMPMBX)&lt;BR /&gt;&lt;BR /&gt;This is the show proc/image&lt;BR /&gt;&lt;BR /&gt;                             Process VSTCPRS_3466J1                01:03:08&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;    State               COM                 Working set                724&lt;BR /&gt;&lt;BR /&gt;    Cur/base priority   4/4                 Virtual pages            12010&lt;BR /&gt;&lt;BR /&gt;    Current PC FFFFFFFF.8025DD2C            CPU time         0 00:08:58.74&lt;BR /&gt;&lt;BR /&gt;    Current PSL         00000000            Direct I/O                 227&lt;BR /&gt;&lt;BR /&gt;    Current user SP     7ADFA870            Buffered I/O           1996126&lt;BR /&gt;&lt;BR /&gt;    PID                 0000346A            Page faults                895&lt;BR /&gt;&lt;BR /&gt;    UIC                 [X990099,VSTCPRS]   Event flags           C00000C9&lt;BR /&gt;                                                                  80000000&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;    DSA0:[SYS0.SYSCOMMON.][GTM_DIST]GTM$DMOD.EXE&lt;BR /&gt;&lt;BR /&gt;Any pointers on how to find the issue (which I suspect is in the M code itself) would be most appreciated.</description>
      <pubDate>Wed, 13 Sep 2006 19:16:22 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862433#M10563</guid>
      <dc:creator>Edward Alekxandr</dc:creator>
      <dc:date>2006-09-13T19:16:22Z</dc:date>
    </item>
    <item>
      <title>Re: Find why process uses 100% cpu.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862434#M10564</link>
      <description>Did it used to work and something changed?&lt;BR /&gt;First time you tried?&lt;BR /&gt;&lt;BR /&gt;&amp;gt;&amp;gt; Buffered I/O 1996126&lt;BR /&gt;&lt;BR /&gt;Is that counter going up rapidly?&lt;BR /&gt;&lt;BR /&gt;My guess is that the process is rapidly beating its head against a wall trying to perform IO to a no longer function 'terminal'&lt;BR /&gt;&lt;BR /&gt;I would poke around with ANAL/SYST... SET PROC VSTCPR... SHOW PROC/CHAN...&lt;BR /&gt;&lt;BR /&gt;fwiw.&lt;BR /&gt;Hein.&lt;BR /&gt;</description>
      <pubDate>Wed, 13 Sep 2006 19:45:47 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862434#M10564</guid>
      <dc:creator>Hein van den Heuvel</dc:creator>
      <dc:date>2006-09-13T19:45:47Z</dc:date>
    </item>
    <item>
      <title>Re: Find why process uses 100% cpu.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862435#M10565</link>
      <description>Edward,&lt;BR /&gt;&lt;BR /&gt;  On an OpenVMS system, using 100% of a CPU means the process is compute bound, and no one else wants the CPU. The way the priority system works, your CPU hungry process will rapidly become a replacement for the Idle loop. Other processes should not be significantly affected.&lt;BR /&gt;&lt;BR /&gt;  If you have source code for the errant process, one way to work out what it's doing is to "freeze" the process with &lt;BR /&gt;&lt;BR /&gt;$ SET PROCESS/SUSPEND/ID=pid&lt;BR /&gt;&lt;BR /&gt;This will put the process into SUSP state, preventing it from consuming more CPU time. Now you can use SDA ($ ANALYZE/SYSTEM) to examine the process. &lt;BR /&gt;&lt;BR /&gt;SDA&amp;gt; SHOW CALL&lt;BR /&gt;SDA&amp;gt; SHOW CALL/NEXT&lt;BR /&gt;&lt;BR /&gt;will walk up the call chain. You should be able to use the addresses, correlated against a MAP file for the program to determine what it thinks it's doing.&lt;BR /&gt;&lt;BR /&gt;You can also use DEBUG or a process dump (SET PROCESS/DUMP=NOW/ID=pid) to catch the process and work out what it's doing.&lt;BR /&gt;&lt;BR /&gt;All that aside, I agree with Hein. I'd guess the process is not handling the sudden loss of the telnet channel. An I/O is failing, and instead of halting or returning to a "listen and wait" state, it's just iterating around a retry loop.</description>
      <pubDate>Wed, 13 Sep 2006 20:04:26 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862435#M10565</guid>
      <dc:creator>John Gillings</dc:creator>
      <dc:date>2006-09-13T20:04:26Z</dc:date>
    </item>
    <item>
      <title>Re: Find why process uses 100% cpu.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862436#M10566</link>
      <description>&lt;BR /&gt;Hi All,&lt;BR /&gt;&lt;BR /&gt;Yes the Buffered I/O count is incrementing like crazy,&lt;BR /&gt;and I just discovered something odd.&lt;BR /&gt;If you telnet to the port and type a couple of enter's,&lt;BR /&gt;the broker disconnects the telnet connection and seems to work fine.&lt;BR /&gt;However if you disconnect before sending *any* data then you get the problem.&lt;BR /&gt;&lt;BR /&gt;I think your analysis of a missed I/O is spot on, but how can I find out *who* is causing the issue.&lt;BR /&gt;VMS, TCPware or GT.M?&lt;BR /&gt;&lt;BR /&gt;I have looked at the SDA stuff, but not really sure what i'm looking for so heres a copy:&lt;BR /&gt;&lt;BR /&gt;Show/CALL:&lt;BR /&gt;Memory Stack Frame at 00000000.7FF9CAA0&lt;BR /&gt;---------------------------------------&lt;BR /&gt;        Stack Frame Procedure Descriptor&lt;BR /&gt;Flags:  Base Register = FP, No Jacket, Native&lt;BR /&gt;        Procedure Entry: FFFFFFFF.8015C680              PROCESS_MANAGEMENT+24680&lt;BR /&gt;        Return address on stack = FFFFFFFF.801815F0       EXE$REI_TO_AST_C+00890&lt;BR /&gt;&lt;BR /&gt;Registers saved on stack&lt;BR /&gt;------------------------&lt;BR /&gt;7FF9CAB0  FFFFFFFF.818EFCD8  Saved R13    SCH_STD$REMOVACB+00100&lt;BR /&gt;7FF9CAB8  00000000.7FF9CAC0  Saved R29    &lt;BR /&gt;SDA&amp;gt; &lt;BR /&gt;&lt;BR /&gt;Show call/next&lt;BR /&gt;&lt;BR /&gt;AST Dispatcher at 00000000.7FF9CAC0&lt;BR /&gt;-----------------------------------&lt;BR /&gt;        Stack Frame Procedure Descriptor&lt;BR /&gt;Flags:  Base Register = FP, No Jacket, Native, AST Dispatcher&lt;BR /&gt;        Procedure Entry: FFFFFFFF.80181F20              SCH$CHAIN_AST_C+000A0&lt;BR /&gt;        Return address on stack = 00000000.00000001       &lt;BR /&gt;&lt;BR /&gt;Registers saved on stack&lt;BR /&gt;------------------------&lt;BR /&gt;7FF9CAD8  00000000.00307BF8  Saved R13    &lt;BR /&gt;7FF9CAE0  00000000.0001C0EC  Saved R14    GTM$DMOD+1C0EC&lt;BR /&gt;7FF9CAE8  00000000.7ADFA870  Saved R29    &lt;BR /&gt;SDA&amp;gt; &lt;BR /&gt;&lt;BR /&gt;Show chan&lt;BR /&gt;&lt;BR /&gt;                            Process active channels&lt;BR /&gt;                            -----------------------&lt;BR /&gt;&lt;BR /&gt;Channel    CCB     Window     Status    Device/file accessed&lt;BR /&gt;-------    ---     ------     ------    --------------------&lt;BR /&gt;  0010  7FF70000  00000000              DSA0:&lt;BR /&gt;  0020  7FF70020  81E92EC0              DSA0:[VMS$COMMON.GTM_DIST]GTM$DMOD.EXE;2 (section file)&lt;BR /&gt;  0030  7FF70040  81CCA040              DSA0:[VMS$COMMON.SYSLIB]LIBRTL.EXE;1 (section file)&lt;BR /&gt;  0040  7FF70060  81E92640              DSA0:[VMS$COMMON.GTM_DIST]GTMSHR.EXE;1 (section file)&lt;BR /&gt;  0050  7FF70080  81CD47C0              DSA0:[VMS$COMMON.SYSEXE]DCL.EXE;1 (section file)&lt;BR /&gt;  0060  7FF700A0  81CC9F80              DSA0:[VMS$COMMON.SYSLIB]DCLTABLES.EXE;89 (section file)&lt;BR /&gt;  0070  7FF700C0  00000000              NLA0:&lt;BR /&gt;  0080  7FF700E0  00000000              MBA12131:&lt;BR /&gt;  0090  7FF70100  81CCB440              DSA0:[VMS$COMMON.SYSLIB]SMGSHR.EXE;1 (section file)&lt;BR /&gt;  00A0  7FF70120  81CCA0C0              DSA0:[VMS$COMMON.SYSLIB]LIBOTS.EXE;1 (section file)&lt;BR /&gt;  00B0  7FF70140  81CCCDC0              DSA0:[VMS$COMMON.SYSLIB]DPML$SHR.EXE;1 (section file)&lt;BR /&gt;  00C0  7FF70160  81CCBC40              DSA0:[VMS$COMMON.SYSLIB]CMA$TIS_SHR.EXE;1 (section file)&lt;BR /&gt;  00D0  7FF70180  81CCAF40              DSA0:[VMS$COMMON.SYSLIB]LBRSHR.EXE;1 (section file)&lt;BR /&gt;  00E0  7FF701A0  81CCD340              DSA0:[VMS$COMMON.SYSLIB]DECC$SHR_EV56.EXE;1 (section file)&lt;BR /&gt;  00F0  7FF701C0  81E91F40              DSA0:[VMS$COMMON.GTM_DIST]GTMSECSHR.EXE;1 (section file)&lt;BR /&gt;  0100  7FF701E0  82023C80              DSA2:[FILEMAN]XWBTCPL.MJO;3&lt;BR /&gt;  0110  7FF70200  8201F040              $1$DKA0:[VISTA]FILEMAN.DAT;1&lt;BR /&gt;  0120  7FF70220  81D7FB00              DSA0:[VMS$COMMON.TCPWARE]UCX$IPC_SHR.EXE;1 (section file)&lt;BR /&gt;  0130  7FF70240  00000000              BG8204:&lt;BR /&gt;  0140  7FF70260  00000000              BG8205:&lt;BR /&gt;  0150  7FF70280  00000000              BG26220:&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Wed, 13 Sep 2006 20:19:37 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862436#M10566</guid>
      <dc:creator>Edward Alekxandr</dc:creator>
      <dc:date>2006-09-13T20:19:37Z</dc:date>
    </item>
    <item>
      <title>Re: Find why process uses 100% cpu.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862437#M10567</link>
      <description>Edward,&lt;BR /&gt;&lt;BR /&gt;you did not look at enough call frames in SDA. You need to continue with SDA&amp;gt; SHOW CALL/NEXT, until you get a return address in P0 space of your process. SDA&amp;gt; CLUE CALL might do a better job here.&lt;BR /&gt;&lt;BR /&gt;This is a typical scenario, an IO seems to fail and the software just re-tries the IO without any retry limits and such.&lt;BR /&gt;&lt;BR /&gt;You need to find the most recent call frame in the application code and then goto the .MAP and the source code. If you don't have either, you need to take this problem to the vendor/maintainer of that piece of software.&lt;BR /&gt;&lt;BR /&gt;If you are running a recent version of OpenVMS (V7.3-2 or higher), you could use the PCS$SDA extension (PC sampling) to collect PC samples from your looping process.&lt;BR /&gt;&lt;BR /&gt;For older version, you could try to collect this type of info with running SHOW PROC/CONT/ID=xxx after a SET HOST/LOG 0. Once run for a while, stop it and logout the SET HOST 0 session. Then edit the SETHOST.LOG file, which includes all the updated PC values and you should be able to extract those values and sort them. You are looking for PC values in P0 space, to be able to map them to your image. SDA&amp;gt; PCS is much better !&lt;BR /&gt;&lt;BR /&gt;Volker.</description>
      <pubDate>Thu, 14 Sep 2006 00:31:16 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862437#M10567</guid>
      <dc:creator>Volker Halle</dc:creator>
      <dc:date>2006-09-14T00:31:16Z</dc:date>
    </item>
    <item>
      <title>Re: Find why process uses 100% cpu.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862438#M10568</link>
      <description>&lt;BR /&gt;Hi Volker!&lt;BR /&gt;&lt;BR /&gt;Umm this is really new territory for me so i'm not sure how to get the details regarding P0 space.&lt;BR /&gt;&lt;BR /&gt;This is the clue call output:&lt;BR /&gt;&lt;BR /&gt;7FF9CAA0  Stack       8015C680  PROCESS_MANAGEMENT+24680                801815F0  EXE$AST_RETURN                      &lt;BR /&gt;7FF9CAC0  Stack       80181F20  SCH$ASTDEL_C                            00000001                                      &lt;BR /&gt;7ADFA870  Stack       802DE820  SYS$OPEN_C                              80AF3DF4  DECC$SHR_EV56+5FDF4                 &lt;BR /&gt;7ADFA8A0  Stack       80AF2DC0  DECC$SHR_EV56+5EDC0                     80BBECC4  DECC$SHR_EV56+0012ACC4              &lt;BR /&gt;7ADFB050  Stack       80BBEC40  DECC$SHR_EV56+0012AC40                  00144E64  GTMSHR+00102E64                     &lt;BR /&gt;7ADFB0E0  Stack       001445A0  GTMSHR+001025A0                         000F1914  GTMSHR+000AF914                     &lt;BR /&gt;7ADFB1F0  Null        7AF77860  DCL+7B860                           &lt;BR /&gt;7ADFB200  Stack       000F1890  GTMSHR+000AF890                         003B7F54                                      &lt;BR /&gt;7ADFBA50  Stack       00030000  GTM$DMOD+00030000                       7FF4FA70                                      &lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Now, I think that this is a problem in GT.M, but before I can point fingers I need to make sure its not TCPware causing issues.&lt;BR /&gt;&lt;BR /&gt;One reason I suspect GT.M is that for another issue with SQLServices and RDB, we did the same telnet to the port and disconnect, and RDB has no issues.&lt;BR /&gt;GT.M on the other hand.....&lt;BR /&gt;&lt;BR /&gt;Thank you for your help, and I'm sorry I don't know much about what I'm asking.</description>
      <pubDate>Thu, 14 Sep 2006 07:00:54 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862438#M10568</guid>
      <dc:creator>Edward Alekxandr</dc:creator>
      <dc:date>2006-09-14T07:00:54Z</dc:date>
    </item>
    <item>
      <title>Re: Find why process uses 100% cpu.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862439#M10569</link>
      <description>As others have said, the M code is not getting nulls, but is having an I/O fail and is not detecting it, hence it looks like it is receiving nulls.  Since the process is using 100% of the CPU time it is unlikely that you can capture the data required to determine whether the problem is in M or in TCPware's RPC code.&lt;BR /&gt;&lt;BR /&gt;Is the M code seeing nulls and trying to read more?  If so, then the bug is probably in GT.M or M for not noticing a failure from the RPC call.</description>
      <pubDate>Thu, 14 Sep 2006 09:02:59 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862439#M10569</guid>
      <dc:creator>Richard Whalen</dc:creator>
      <dc:date>2006-09-14T09:02:59Z</dc:date>
    </item>
    <item>
      <title>Re: Find why process uses 100% cpu.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862440#M10570</link>
      <description>I can run the broker in interactive mode (rather than as a detached process) and it looks like it keeps trying to read the BG device in a loop.&lt;BR /&gt;&lt;BR /&gt;I'm pointing fingers at GT.M and or the VistA RPC broker (in M)&lt;BR /&gt;&lt;BR /&gt;The M process is looping, my only thought regarding TCPware was if the UCX emulation was different to TCP Services with regards to a connection that was closed before being written to.</description>
      <pubDate>Thu, 14 Sep 2006 09:44:48 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862440#M10570</guid>
      <dc:creator>Edward Alekxandr</dc:creator>
      <dc:date>2006-09-14T09:44:48Z</dc:date>
    </item>
    <item>
      <title>Re: Find why process uses 100% cpu.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862441#M10571</link>
      <description>We try to have TCPware's UCX service (the BG device and UCX$IPC_SHR) perform identically to TCP/IP services.  We are not currently aware of any differences.&lt;BR /&gt;&lt;BR /&gt;Richard Whalen&lt;BR /&gt;Process Software</description>
      <pubDate>Thu, 14 Sep 2006 09:48:24 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862441#M10571</guid>
      <dc:creator>Richard Whalen</dc:creator>
      <dc:date>2006-09-14T09:48:24Z</dc:date>
    </item>
    <item>
      <title>Re: Find why process uses 100% cpu.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862442#M10572</link>
      <description>I thought that any differences would have been picked up *long* ago, just following my (wondering) train of thought.&lt;BR /&gt;&lt;BR /&gt;One question though,&lt;BR /&gt;If the process is trying to read from a BG device, how with TCPware can I find out what state that connection / device is in.&lt;BR /&gt;&lt;BR /&gt;I have done a SHOW DEVICE BG32410/FULL, with no real info.  I'm looking through the NETCU help ATM, to see if there is anything here that may help.&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 14 Sep 2006 09:58:02 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862442#M10572</guid>
      <dc:creator>Edward Alekxandr</dc:creator>
      <dc:date>2006-09-14T09:58:02Z</dc:date>
    </item>
    <item>
      <title>Re: Find why process uses 100% cpu.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862443#M10573</link>
      <description>$ @TCPWARE:TCPWARE_COMMANDS&lt;BR /&gt;$ NETCU SHOW CONNECTIONS&lt;BR /&gt;Will list active connections and their state.&lt;BR /&gt;If you don't see the BG device that your program is using, then that BG device doesn't have an active connection.&lt;BR /&gt;&lt;BR /&gt;Note that a program that uses BG devices and uses the SELECT socket library call (and I believe that the RPC code does) will always have at least one BG device that does not have a connection associated with it.  This BG device is used for the qiow that does the SELECT operation.  (This is true for TCP/IP services, MultiNet and TCPware.)</description>
      <pubDate>Thu, 14 Sep 2006 10:35:16 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862443#M10573</guid>
      <dc:creator>Richard Whalen</dc:creator>
      <dc:date>2006-09-14T10:35:16Z</dc:date>
    </item>
    <item>
      <title>Re: Find why process uses 100% cpu.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862444#M10574</link>
      <description>Edward,&lt;BR /&gt;&lt;BR /&gt;the call stack shows various routines on the stack at the time you issued the SDA&amp;gt; CLUE CALL command.&lt;BR /&gt;&lt;BR /&gt;There is a call to SYS$OPEN_C (called from the C runtime library), called from a routine in GTMSHR.&lt;BR /&gt;&lt;BR /&gt;You would need to execute a couple of those SDA&amp;gt; CLUE CALL commands against the looping process and find out, which of the call frames are constantly shown on the stack. Then go to the highest frame (lowest Procedure Frame address), which shows a return address in your code (GTMSHR or other). When this call frame is ALWAYS on the stack of the looping process, you need to analyze the call made from that return address.&lt;BR /&gt;&lt;BR /&gt;You need the map and the source listing (with machine code !) of the current version of that module for further analysis.&lt;BR /&gt;&lt;BR /&gt;Based on the fact, that there is a SYS$OPEN call, this might give a hint...&lt;BR /&gt;&lt;BR /&gt;Volker.</description>
      <pubDate>Thu, 14 Sep 2006 11:21:58 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862444#M10574</guid>
      <dc:creator>Volker Halle</dc:creator>
      <dc:date>2006-09-14T11:21:58Z</dc:date>
    </item>
    <item>
      <title>Re: Find why process uses 100% cpu.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862445#M10575</link>
      <description>Thanks everyone for all your help.&lt;BR /&gt;&lt;BR /&gt;I think i've traced the error to the following M code:&lt;BR /&gt;&lt;BR /&gt; F  D  Q:DONE&lt;BR /&gt; . S S=L-$L(R),R=R_$E(XWBRBUF,1,S),XWBRBUF=$E(XWBRBUF,S+1,999999)&lt;BR /&gt; . I ($L(R)=L)!(R[$C(4))!(C&amp;gt;TO) S DONE=1 Q&lt;BR /&gt; . R XWBRBUF:2 S:'$T C=C+1 S:$L(XWBRBUF) C=0&lt;BR /&gt; . I $G(XWBDEBUG)&amp;gt;2,$L(XWBRBUF) D LOG^XWBDLOG("rd: "_$E(XWBRBUF,1,252))&lt;BR /&gt;&lt;BR /&gt;When the process is run interactively rather than detached, I can step through the M code and it seems to loop rapidly through this at maximum throttle.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I'm going to have another look tomorrow, but I'm somewhat zombie-fied with flu today so thinking is out of the window.&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 14 Sep 2006 18:17:23 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862445#M10575</guid>
      <dc:creator>Edward Alekxandr</dc:creator>
      <dc:date>2006-09-14T18:17:23Z</dc:date>
    </item>
    <item>
      <title>Re: Find why process uses 100% cpu.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862446#M10576</link>
      <description>@John:&lt;BR /&gt;&lt;BR /&gt;&lt;QUOTE&gt;&lt;BR /&gt;On an OpenVMS system, using 100% of a CPU means the process is compute bound, and no one else wants the CPU. The way the priority system works, your CPU hungry process will rapidly become a replacement for the Idle loop. Other processes should not be significantly affected.&lt;BR /&gt;&lt;/QUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;Well, in these matters I usually consider you to be WAY better informed than I am, but this time I feel things are not exactly as you portray them.&lt;BR /&gt;&lt;BR /&gt;As I have (regrettably) experienced all to often, in cases like this the process actually gets an interactive terminal IO request boost, which as soon as it is satisfied gets a re-boost, etc. Effectively tying up one CPU.&lt;BR /&gt;If you have several such (eg, Progress) processes, then as soon as "several" reaches "number of CPU's" it becomes VERY hard to take corrective measures!&lt;BR /&gt;&lt;BR /&gt;The solution (ahh, call that workaround) for us was to enable Virtual Terminals, and have a (short) Disconnected Terminal process termination.&lt;BR /&gt;&lt;BR /&gt;fwiw&lt;BR /&gt;&lt;BR /&gt;Proost.&lt;BR /&gt;&lt;BR /&gt;Have one on me.&lt;BR /&gt;&lt;BR /&gt;jpe</description>
      <pubDate>Fri, 15 Sep 2006 12:53:31 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/find-why-process-uses-100-cpu/m-p/3862446#M10576</guid>
      <dc:creator>Jan van den Ende</dc:creator>
      <dc:date>2006-09-15T12:53:31Z</dc:date>
    </item>
  </channel>
</rss>

