BUG - Notifier Compatibility VIs Memory Leak

There is a nasty little bug in the Notifier compatibility VIs that causes a sever performance hit, and memory leak. This is caused by the caching of the notifier names and not ever flushing stale notifier references when they are destroyed. This bug exists in LV 6.1, 7.0, and 7.1.
More info, including screenshots and bugfix download, located here:
http://forums.lavausergroup.org/index.php?showtopic=1093
Regards,

Sorry, that last URL wasn't a hyperlink. Click on this:
http://forums.lavausergroup.org/index.php?showtopic=1093

Similar Messages

  • Avoid Bug 7146375 ORA-4030 MEMORY LEAK IN (Xml generation) in oracle 10g

    Hi All,
    I have to generate an xml from database which contains around 4 lac records. I had written a query using XmlSerialize and XmlElement.
    It does run properly for records less than 2 lacs.
    But when the record count goes above 2 lacs..it is throwing the following error -
    { ORA-04030: out of process memory when trying to allocate 1032 bytes (qmxlu subheap,qmemNextBuf:alloc)
    ORA-06512: at "SYS.XMLTYPE", line 111!}
    For the above error - I have tried increasing pga from 480M to 800M, but still we are getting the same error.
    After researching i found out -
    Cause
    This is caused by the following bug:
    Bug 7146375 ORA-4030 AND MEMORY LEAK IN SESSION HEAP: "KOH DUR HEAP D"
    Solution
    Bug 7146375 is fixed in 11.2
    So i tried out the query in another a db which has 11g installed and my query runs perfectly fine for records of upto 4 lacs.
    But since we have oracle 10g on our clients machine, are there other ways to achieve this XML generation other than this?
    Thanks.

    913389 wrote:
    After researching i found out -
    Cause
    This is caused by the following bug:
    Bug 7146375 ORA-4030 AND MEMORY LEAK IN SESSION HEAP: "KOH DUR HEAP D"
    Solution
    Bug 7146375 is fixed in 11.2
    So i tried out the query in another a db which has 11g installed and my query runs perfectly fine for records of upto 4 lacs.
    But since we have oracle 10g on our clients machine, are there other ways to achieve this XML generation other than this?I doubt it. If Oracle have investigated and created a bug report that says the solution is to upgrade to 11.2, then that's the answer, otherwise they would indicate that a particular 10g patch set can also be used.

  • [Bug?] X-Control Memory Leak with Large Data Array

    [LV2009]
    [Cross-posted to LAVA]
    I have found that if I pass a large data array (~4MB in this example) into an X-Control, it causes massive memory allocations (1 GB+).
    Is this a known issue?
    The X-Control in the video was created, then the Data.ctl was changed to 2D Array - it has not been edited in any other way.
    I also compare the allocations to that of a native 2D Array (which is only ~4MB).
    Note: I jiggled the Windows Task Manager about so that JING would update correctly, its a bit slow, but it essentially just keeps rolling up and doesn't stop.
    Demo code attached.
    Cheers
    -JG
    Unable to display content. Adobe Flash is required.
    Certified LabVIEW Architect * LabVIEW Champion
    Attachments:
    X Control Bug [LV2009].zip ‏42 KB

    Hi Jon (cool name) 
    Thank you very much for your reply. We came to this conclusion in the cross post and it is good to have it confirmed by LabVIEW R&D. Your response is also similar to that of my AE which I got this morning as well - see below:
    Note: Your reference number is included in the Subject field of this
    message. It is very important that you do not remove or modify this
    reference number, or your message may be returned to you.
    Hi Jon,
    You probably found some information from the forum. The US engineer has gotten back and he said that unfortunately that's expected behaviour after they have conducted some tests and this is what he replied:
    "X Controls in the background use events structures. In particular the Data Change Event is called when the value of the XControl changes (writing to the terminal, local variable, or value change property). What is happening in this case is the XControl is getting called to fast with a large set of data that the event structure is queuing the events and data that a memory leak is produced. It is, unfortunately, expect behavior. The main work around for the customer in this case is not call the XControl as often. Another possibility is to use the Synchronous Display Property to defer updates to the Xcontrol, this might slow down a leak."
    He would also like to know if you can provide with more details how you are using the Xcontrol, perhaps there is a better way. Please refer to the link below for synchronous display. Thank you.
    http://zone.ni.com/reference/en-XX/help/371361G-01/lvprop/control_synchronous_display/
    In my application I updated the X-Control @ 1Hz and it allocated at MBs/s up to 1+GB before it crashed, all within a few hours. That is why I called it a leak. I am really worried that if this CAR gets killed, there will still be an issue lingering that makes using X-Controls a major problem under the above conditions. I have had to pull two sets of libraries from my code because of this - when they got replaced with native LabVIEW controls the leak when away (but I lost reuse and encapsulation etc...).
    Anyways, I really want to use X-Control tho (now and in the future) as I like all other aspect of them. If you do not consider this a leak, can a different #CAR be raised that may modify the existing behavior? I offer the suggestion (in the cross-post) that the data be ignored rather than queued? Similar to Christian's idea, but for X-Controls. Maybe as an option?
    I look forward to discussing this with you further.
    Regards
    -Jon
    Certified LabVIEW Architect * LabVIEW Champion

  • Finding Memory leaks in C using Visual Studio 2013

    I am using Visual Studio 2013, and taking a course in C programming and we started
    talking about memory bugs detaction, in particular memory leaks, and how to detect them using Valgrind on Linux.
    I want to know if there is a way to detect such memory leaks using VS 2013. I tried searching online but it just leads to lots of articles and blogs and msdn posts and blogs with lots of words like dump files, and analyzing them, etc which is weird
    because:
    1) It sounds so complex, convoluted and unintuitive it is actually hard to comprehend it.
    2) The main reason this is weird is due to the fact that VS is the most advanced IDE around and Microsoft spends so much money on in, yet from what I have read it seems that there is no simple way to use VS to detect memory leaks
    - certainly no way that's as simple as Valgrind where I only have to compile the program and run the command valgrind -leaks-check=yes ProgramName
    and it simply prints to me all location it thinks there is a memory leak and describes the error (like not freeing memory after allocating it with malloc hence having "dead" memory after the program finishes, or accessing memory that's out of
    the array bounds)                                                                                                                                                               
    So my question is how to use VS 2013 in order to achieve the same results and to find out First in high level if there are memory leaks in the program, and Second - to detect in a simple manner where those leaks are- preferably without involving dump files
    (not that I know how to use them anyway in VS).

    Hi MicrosoftLaw,
    Thanks for your post.
    Based on your issue, if you want to check if there are memory leaks in the C program from this VS2013. I suggest you could try to find Memory Leaks Using the CRT Library, for more information:
    https://msdn.microsoft.com/en-us/library/x98tx3cf.aspx?f=255&MSPPError=-2147217396
    In addition, I find a similar thread about this issue, please you refer the Dusty's suggestion to check this issue.
    http://stackoverflow.com/questions/45627/how-do-you-detect-avoid-memory-leaks-in-your-unmanaged-code
    I did some research about this issue, I found that the Visual Leak Detector extension tool is a free, robust, open-source memory leak detection system for Visual C++. So if possible, I suggest you could try to use the Visual Leak Detector extension
    tool to find the memory leak for Visual C/ C++ program.
    https://visualstudiogallery.msdn.microsoft.com/7c40a5d8-dd35-4019-a2af-cb1403f5939c
    However, if you have any issue about how to use this Visual Leak Detector extension tool to find the memory leak for C program. I suggest you could directly to write a review to this REVIEW tab in Visual Leak Detector site.
    Best Regards,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Memory leaks in DS6.2

    I'm running DS6.2 (from JES5 update 1) on a sparc cluster running Solaris 9. I have 6 replicas on standalone boxes running Solaris 10 x86. ALL of them are experiencing massive memory leaks. My DB is only about 150MB and my typical ns-slapd size is 1.2GB. On the cluster, it grew to 8GB, I finally restarted the process before it would crash and cause problems. On one of the replicas, it grew to over 4GB and evertually ran out of memory and ns-slapd crashed. It restarted OK.
    Has anyone else heard of this or had this happen to them?
    Thanks

    Hi Jo_nage,
    we experience the same situation and are currently investigating it with Sun in a support case. With these 2 bugfixes the behavior is much better:
    Bugs description:
    6619060
    Synopsis: memory leak with hashtable
    6568770
    Synopsis: Memory leak in DSEE 6.0 when performing substring searches
    In our scenario LDAP searches don't leak anymore, there is only a remaing issue with modifications/replication. You should open a support case with Sun and request a hotfix for this.
    Regards,
    Holger

  • Telemetry + uploadFromBitmapData == Memory leak, crash

    Hi all,
    This bug/crash is a memory leak that only occurs when utilizing texture upload and -advanced-telemetry at the same time.
    Testcase at: http://onetacoshort.com/temp/telemetry_leak.zip
    Testcase README file is as follows:
    Using Scout to debug an app compiled with -advanced-telemetry using the new ASC2.0 compiler, uploading textures via:
      flash.display3D.textures.Texture.uploadFromBitmapData(bd);
    causes a memory leak and eventual crash.  Observed when using AIR 3.6 - 3.8 on both iOS and Android.
    Memory usage in the "Other" category rises infinityly in steps until the app crashes (see scout_screenshot_telemetry.jpg).
      If compiled without -advanced-telemetry, the app runs properly (see scout_screenshot_without.jpg)
    Note that if the Testcase app is not connected to a Scout instance (i.e. Adobe Scout app not installed, or not enabled), it does not crash.
    So it's probably not critical, but it's a testing irritation.
    Best,
    -Jeff

    Hi Jeff,
    Thanks for the heads up.  Would you mind copy/pasting this report over to bugbase.adobe.com as a new bug report?  Once added please shoot me the bug number and I'll follow up internally.
    Thanks,
    Chris

  • Bug:4705928 PLSQL: Memory leak using small varrays

    We have Oracle version 10.2.0.1.0
    We have a problem with a procedure.
    In our scenario we make use of VARRAY in the procedure to pass some filter parameters to a select distinct querying a view made on three tables.
    Unfotunately not always execution it is successful.
    Sometimes it returns wrong value (0 for the count parameter), sometimes (rarely) the server stops working.
    We suspect that this is caused by a bug fixed in versione 10.2.0.3.0
    Bug:4705928 PLSQL: Memory leak using small varrays when trimming the whole collection and inserting into it in a loop
    We suspect this becasue we made two procedure the first (spProductCount) uses a function (fnProductFilter) to calculate the values of a varray and passes them into the select,
    while in the second procedure (spProductCount2) parameters are passed directly into the statement without varray
    and there are failures only in the first procedure.
    On the other hand on another server 10.2.0.1.0 we never have this problem.
    The instance manifesting the bug runs under shared mode, while the other is under dedicated mode.
    Turning the first one to dedicated mode makes the bugs disapear.
    Unfortunately this is not a solution.
    In the sample there are the three table with all constraints, the view, tha varray custom type, the function and the two procedures.
    Is there someone that may examine our sample and tell us if the pl/sql code corresponds to the bug desciption.
    We also want to know if it's possibile that the same server running under different mode (SHARED/DEDICATED) doesn't behave the same way.
    The tables:
    --Products
    CREATE TABLE "Products" (
         "Image" BLOB
         , "CatalogId" RAW(16)
         , "ProductId" RAW(16)
         , "MnemonicId" NVARCHAR2(50) DEFAULT ''
         , "ProductParentId" RAW(16)
    ALTER TABLE "Products"
         ADD CONSTRAINT "NN_Products_M04" CHECK ("CatalogId" IS NOT NULL)
    ALTER TABLE "Products"
         ADD CONSTRAINT "NN_Products_M05" CHECK ("ProductId" IS NOT NULL)
    ALTER TABLE "Products"
    ADD CONSTRAINT "PK_Products"
    PRIMARY KEY ("ProductId")
    CREATE INDEX "IX_Products"
    ON "Products" ("CatalogId", "MnemonicId")
    CREATE UNIQUE INDEX "UK_Products"
    ON "Products" (DECODE("MnemonicId", NULL, NULL, RAWTOHEX("CatalogId") || "MnemonicId"))
    --Languages
    CREATE TABLE "Languages" (
         "Description" NVARCHAR2(250)
         , "IsStandard" NUMBER(1)
         , "LanguageId" RAW(16)
         , "MnemonicId" NVARCHAR2(12)
    ALTER TABLE "Languages"
         ADD CONSTRAINT "NN_Languages_M01" CHECK ("LanguageId" IS NOT NULL)
    ALTER TABLE "Languages"
         ADD CONSTRAINT "NN_Languages_M05" CHECK ("MnemonicId" IS NOT NULL)
    ALTER TABLE "Languages"
    ADD CONSTRAINT "PK_Languages"
    PRIMARY KEY ("LanguageId")
    ALTER TABLE "Languages"
    ADD CONSTRAINT "UK_Languages"
    UNIQUE ("MnemonicId")
    --ProductDesc
    CREATE TABLE "ProductDesc" (
         "Comment" NCLOB
         , "PlainComment" NCLOB
         , "Description" NVARCHAR2(250)
         , "DescriptionText" NCLOB
         , "PlainDescriptionText" NCLOB
         , "LanguageId" NVARCHAR2(12)
         , "ProductId" RAW(16)
    ALTER TABLE "ProductDesc"
         ADD CONSTRAINT "NN_ProductDescM01" CHECK ("LanguageId" IS NOT NULL)
    ALTER TABLE "ProductDesc"
         ADD CONSTRAINT "NN_ProductDescM02" CHECK ("ProductId" IS NOT NULL)
    ALTER TABLE "ProductDesc"
    ADD CONSTRAINT "PK_ProductDesc"
    PRIMARY KEY ("ProductId", "LanguageId")
    ALTER TABLE "ProductDesc"
    ADD CONSTRAINT "FK_ProductDesc1"
    FOREIGN KEY("ProductId") REFERENCES "Products" ("ProductId")
    ALTER TABLE "ProductDesc"
    ADD CONSTRAINT "FK_ProductDesc2"
    FOREIGN KEY("LanguageId") REFERENCES "Languages" ("MnemonicId")
    /The view:
    --ProductView
    CREATE OR REPLACE VIEW "vwProducts"
    AS
         SELECT
               "Products"."CatalogId"
              , "ProductDesc"."Comment"
              , "ProductDesc"."PlainComment"
              , "ProductDesc"."Description"
              , "ProductDesc"."DescriptionText"
              , "ProductDesc"."PlainDescriptionText"
              , "Products"."Image"
              , "Languages"."MnemonicId" "LanguageId"
              , "Products"."MnemonicId"
              , "Products"."ProductId"
              , "Products"."ProductParentId"
              , TRIM(NVL("ProductDesc"."Description" || ' ', '') || NVL("ParentDescriptions"."Description", '')) "FullDescription"
         FROM "Products"
         CROSS JOIN "Languages"
         LEFT OUTER JOIN "ProductDesc"
         ON "Products"."ProductId" = "ProductDesc"."ProductId"
         AND "ProductDesc"."LanguageId" = "Languages"."MnemonicId"
         LEFT OUTER JOIN "ProductDesc" "ParentDescriptions"
         ON "Products"."ProductParentId" = "ParentDescriptions"."ProductId"
         AND ("ParentDescriptions"."LanguageId" = "Languages"."MnemonicId")
    /The varray:
    --CustomType VARRAY
    CREATE OR REPLACE TYPE Varray_Params IS VARRAY(100) OF NVARCHAR2(1000);
    /The function:
    --FilterFunction
    CREATE OR REPLACE FUNCTION "fnProductFilter" (
         parCatalogId "Products"."CatalogId"%TYPE,
         parLanguageId                    NVARCHAR2 := N'it-IT',
         parFilterValues                    OUT Varray_Params
    RETURN INTEGER
    AS
         varSqlCondition                    VARCHAR2(32000);
         varSqlConditionValues          NVARCHAR2(32000);
         varSql                              NVARCHAR2(32000);
         varDbmsCursor                    INTEGER;
         varDbmsResult                    INTEGER;
         varSeparator                    VARCHAR2(2);
         varFilterValue                    NVARCHAR2(1000);
         varCount                         INTEGER;
    BEGIN
         varSqlCondition := '(T_Product."CatalogId" = HEXTORAW(:parentId)) AND (T_Product."LanguageId" = :languageId )';
         varSqlConditionValues := CHR(39) || TO_CHAR(parCatalogId) || CHR(39) || N', ' || CHR(39 USING NCHAR_CS) || parLanguageId || CHR(39 USING NCHAR_CS);
         parFilterValues := Varray_Params();
         varSql := N'SELECT FilterValues.column_value FilterValue FROM TABLE(Varray_Params(' || varSqlConditionValues || N')) FilterValues';
         BEGIN
              varDbmsCursor := dbms_sql.open_cursor;
              dbms_sql.parse(varDbmsCursor, varSql, dbms_sql.native);
              dbms_sql.define_column(varDbmsCursor, 1, varFilterValue, 1000);
              varDbmsResult := dbms_sql.execute(varDbmsCursor);
              varCount := 0;
              LOOP
                   IF (dbms_sql.fetch_rows(varDbmsCursor) > 0) THEN
                        varCount := varCount + 1;
                        dbms_sql.column_value(varDbmsCursor, 1, varFilterValue);
                        parFilterValues.extend(1);
                        parFilterValues(varCount) := varFilterValue;
                   ELSE
                        -- No more rows to copy
                        EXIT;
                   END IF;
              END LOOP;
              dbms_sql.close_cursor(varDbmsCursor);
         EXCEPTION WHEN OTHERS THEN
              dbms_sql.close_cursor(varDbmsCursor);
              RETURN 0;
         END;
         FOR i in parFilterValues.first .. parFilterValues.last LOOP
              varSeparator := ', ';
         END LOOP;
         RETURN 1;
    END;
    /The procedures:
    --Procedure presenting anomaly\bug
    CREATE OR REPLACE PROCEDURE "spProductCount" (
         parCatalogId "Products"."CatalogId"%TYPE,
         parLanguageId NVARCHAR2 := N'it-IT',
         parRecords OUT NUMBER
    AS
         varFilterValues Varray_Params;
         varResult INTEGER;
         varSqlTotal VARCHAR2(32000);
    BEGIN
         parRecords := 0;
         varResult := "fnProductFilter"(parCatalogId, parLanguageId, varFilterValues);
         varSqlTotal := 'BEGIN
         SELECT count(DISTINCT T_Product."ProductId") INTO :parCount FROM "vwProducts" T_Product
              WHERE ((T_Product."CatalogId" = HEXTORAW(:parentId)) AND (T_Product."LanguageId" = :languageId ));
    END;';
         EXECUTE IMMEDIATE varSqlTotal USING OUT parRecords, varFilterValues(1), varFilterValues(2);
    END;
    --Procedure NOT presenting anomaly\bug
    CREATE OR REPLACE PROCEDURE "spProductCount2" (
         parCatalogId "Products"."CatalogId"%TYPE,
         parLanguageId NVARCHAR2 := N'it-IT',
         parRecords OUT NUMBER
    AS
         varFilterValues Varray_Params;
         varResult INTEGER;
         varSqlTotal VARCHAR2(32000);
    BEGIN
         parRecords := 0;
         varSqlTotal := 'BEGIN
         SELECT count(DISTINCT T_Product."ProductId") INTO :parCount FROM "vwProducts" T_Product
              WHERE ((T_Product."CatalogId" = HEXTORAW(:parentId)) AND (T_Product."LanguageId" = :languageId ));
    END;';
         EXECUTE IMMEDIATE varSqlTotal USING OUT parRecords, parCatalogId, parLanguageId;
    END;Edited by: 835125 on 2011-2-9 1:31

    835125 wrote:
    Using VARRAY was the only way I found to transform comma seprated text values (e.g. "'abc', 'def', '123'") in a collection of strings.A varray is just a functionally crippled version of a nested table collection type, with a defined limit you probably don't need. (Why 100 specifically?) Instead of
    CREATE OR REPLACE TYPE varray_params AS VARRAY(100) OF NVARCHAR2(1000);try
    CREATE OR REPLACE TYPE array_params AS TABLE OF NVARCHAR2(1000);I don't know whether that will solve the problem but at least it'll be a slightly more useful type.
    What makes you think it's a memory leak specifically? Do you observe session PGA memory use going up more than it should?
    btw good luck with all those quoted column names. I wouldn't like to have to work with those, although they do make the forum more colourful.
    Edited by: William Robertson on Feb 11, 2011 7:54 AM

  • Memory leak with Visa Close in loop

    I read the other posts about the memory leak problems with Visa Close, but eliminating the Visa Close from VI causes problems with read & write (it seems to go out of sync). Any suggestions? Example attached.
    Attachments:
    MKS_651C_Serial_Communication.vi ‏144 KB

    Solved the problem. I had to change the bit count and adjust sort. Removing the Visa Close did eliminate the memory leak.

  • Memory leak in Real-Time caused by VISA Read and Timed Loop data nodes? Doesn't make sense.

    Working with LV 8.2.1 real-time to develop a host of applications that monitor or emulate computers on RS-422 busses.   The following screen shots were taken from an application that monitors a 200Hz transmission.  After a few hours, the PXI station would crash with an awesome array of angry messages...most implying something about a loss of memory.  After much hair pulling and passing of the buck, my associate was able to discover while watching the available memory on the controller that memory loss was occurring with every loop containing a VISA read and error propogation using the data nodes (see Memory Leak.jpg).  He found that if he switched the error propogation to regular old-fashioned shift registers, then the available memory was rock-solid.  (a la No Memory Leak.jpg)
    Any ideas what could be causing this?  Do you see any problems with the way we code these sorts of loops?  We are always attempting to optimize the way we use memory on our time-critical applications and VISA reads and DAQmx Reads give us the most heartache as we are never able to preallocate memory for these VIs.  Any tips?
    Dan Marlow
    GDLS
    Solved!
    Go to Solution.
    Attachments:
    Memory Leak.JPG ‏136 KB
    No Memory Leak.JPG ‏137 KB

    Hi thisisnotadream,
    This problem has been reported, and you seem to be exactly reproducing the conditions required to see this problem. This was reported to R&D (# 134314) for further investigation. There are multiple possible workarounds, one of which is the one that you have already found of wiring the error directly into the loop. Other situations that result in no memory leak are:
    1.  If the bytes at port property node is not there and a read just happens in every iteration and resulting timeouts are ignored.
    2.  If the case structure is gone and just blindly check the bytes at port and read every iteration.
    3.  If the Timed Loop is turned into a While loop.
    Thanks for the feedback!
    Regards,Stephen S.
    National Instruments
    Applications Engineering

  • What about the memory leak Bug in foreach tag

    Hi,
    does anybody knows if this bug is resolved already ?
    http://issues.apache.org/bugzilla/show_bug.cgi?id=25623.
    I see memory leaks in our application, and deeper check with YourKit profiler show that the objects retained in the jstl tags?
    Any help?

    Thanks for the info.
    The bug is in 'WONT FIX' status which is a shame.
    ram.

  • Plugin-container.exe takes over and uses 100% of my CPU locking me out and leaving my PC non-functioning. Is this a bug, or a memory leak, in the Firefox software? Can anything be done to fix this problem?

    In looking at Windows Task Manager I found that plugin-container.exe was taking over 100% of my CPU and my system was frozen. Is this a memory leak or other bug?

    Thank you! I have been having problems with Adobe Flash since downloading the new 11.1 version. I will download it again and reinstall it, hopefully that will correct the problem.

  • BUG:  Apex4/Anychart5 - memory leak?

    We are running into a pretty serious problem with resources. It seems that there is some kind of interaction between Apex and Anychart5 that is causing a pretty serious memory leak. For example, in one dashboard I am building, I have 9 charts on a page. When I click through a chart to a second page, I have three charts and an Interactive report.
    None of the sql is really all that complex. But I will include one of the queries singled out by one of our DBAs as being involved in consuming over 20 GB of data (values slightly modified for security). The query:
    SELECT CASE
    WHEN quarter = 'Q1'
    THEN
    '/pls/apex/f?p=108:3:1111111111111111::::P3_YEAR1,P3_YEAR2,P3_CLICK_VAL,P3_QUARTER:2009,2008,2009,1:'
    WHEN quarter = 'Q2'
    THEN
    '/pls/apex/f?p=108:3:1111111111111111::::P3_YEAR1,P3_YEAR2,P3_CLICK_VAL,P3_QUARTER:2009,2008,2009,2:'
    WHEN quarter = 'Q3'
    THEN
    '/pls/apex/f?p=108:3:1111111111111111::::P3_YEAR1,P3_YEAR2,P3_CLICK_VAL,P3_QUARTER:2009,2008,2009,3:'
    WHEN quarter = 'Q4'
    THEN
    '/pls/apex/f?p=108:3:1111111111111111::::P3_YEAR1,P3_YEAR2,P3_CLICK_VAL,P3_QUARTER:2009,2008,2009,4:'
    END
    link,
    quarter label,
    so_ext_price Sales_2009
    FROM ( SELECT SUM (v.so_ext_price) so_ext_price,
    ('Q' || TO_CHAR (v.cal_qtr_num)) quarter
    FROM owner.materialized_view_mv@db_link_name v
    WHERE v.cal_year = TO_CHAR (2009)
    AND v.account_number IN
    (SELECT *
    FROM TABLE(user_pkg.get_customer_numbers (
    'APP_USER',
    'USER_PROPERTY',
    'CUSTOMER_NAME'
    -- THE ABOVE SUBQUERY SELECTS FROM A PIPELINE FUNCTION TO RETURN A LIST OF STRINGS
    GROUP BY v.cal_qtr_num
    ORDER BY v.cal_qtr_num)
    As you would expect, this query returns 4 records reflecting sales by quarter. The query takes about four seconds to run. Explain plan cost is just under 14K. The pipeline function literally returns a single column of about six values using a simple select distinct where the parameters passed are filters in the where clause. The pipeline function returns in approximately 1 second. The largest result set it ever returns is six rows. The pipeline function is innocuous on its own but I am suspicious that it may be where we're running into issues. We weren't seeing these problems (or at least they weren't as noticeable) until we needed to use pipline functions. 'Don't use pipeline functions' is not an acceptable work around in our case. While I can figure out a way around it in the charts by returning SQL from a function, I cannot do so in the interactive reports.
    What our DBAs found is that the code pasted below is what was sucking down 22 GB of ram, then after clicking through to the second page the same code (for a different chart query) was consuming 17 GB of ram almost depleting our 48 GB of ram on our server in less than ten minutes. I disabled the chart running each 'offending' query and we had the same results with a different chart but the same underlying code below.
    I don't know where in Apex this lives but it's the killer. Can I get some feedback? Anyone else having similar issues?
    declare
    rc__ number;
    simple_list__ owa_util.vc_arr;
    complex_list__ owa_util.vc_arr;
    begin
    owa.init_cgi_env(:n__,:nm__,:v__);
    htp.HTBUF_LEN := 63;
    null;
    null;
    simple_list__(1) := 'sys.%';
    simple_list__(2) := 'dbms\_%';
    simple_list__(3) := 'utl\_%';
    simple_list__(4) := 'owa\_%';
    simple_list__(5) := 'owa.%';
    simple_list__(6) := 'htp.%';
    simple_list__(7) := 'htf.%';
    simple_list__(8) := 'wpg_docload.%';
    if ((wwv_flow_epg_include_modules.authorize('apex_util.flash') = false) or (owa_match.match_pattern(p_string =>
    'apex_util.flash'
    /* */,p_simple_pattern =>
    simple_list__
    ,p_complex_pattern =>
    complex_list__
    ,p_use_special_chars =>
    false)))
    then
    rc__ := 2;
    else
    null;
    null;
    apex_util.flash(p=>:p,XMLCallDate=>:XMLCallDate);
    if (wpg_docload.is_file_download) then
    rc__ := 1;
    wpg_docload.get_download_file(:doc_info);
    null;
    null;
    null;
    commit;
    else
    rc__ := 0;
    null;
    null;
    null;
    commit;
    owa.get_page(:data__,:ndata__);
    end if;
    end if;
    If we are barking up the wrong tree, I'd be VERY happy. I'd rather it was something I could fix.
    Edited by: WannaRock on Aug 24, 2010 9:53 AM

    Thanks for looking at this post. We have resolved the issue for ourselves by working with our DBAs to narrow down where the problem actually started. We found that the particular SQL we were looking at was not the issue. In a chart on a subsequent page (via a click through), we were actually running into where apex was starting to consuming memory but we were catching it later.
    What we found was that when we had a chart query that was SQL containing a pipeline function, the memory usage went up. And within 10 minutes, the server would crawl to a halt. To release the memory, the DBAs would have to bounce the Apex instance. When I changed the query to be a function returning SQL, the problem stopped. I don't know what the correlation was between SQL and moving to a PL/SQL function returning SQL.
    I am not even 100% positive of the pipeline function being the cause. I only know that this started happening about the same time as when I implemented the pipeline function. I understand you are leery of a one-second function/query running up that kind of utilization. No one here believed me either (including me really). We figured it HAD to be a coincidence. But once I changed the query from SQL to a function returning PL/SQL, our problem went away.
    Thanks to all who looked at and thought about this.
    Walter

  • Firefox 17 huge memory leak

    Since the last update today, Firefox seems to got a huge memory leak. After one hour idle on some pages it was up to 750MB memory usage, and constant 100% load of one CPU core.
    Looks like something is not going well with the garbage collection, if I visit http://www.robertsspaceindustries.com/forums/forum/forum-category-2/ for example.
    Had to disable the graphic hardware acceleration, because of the newly introduced "clear type" font bug.
    Edit: May also be related to mail.google.com, which I have running in an app tab.

    For what it's worth, I had exactly the same problem (except that it's on Linux) since the upgrade to 17.0. When I disabled greasemonkey, the problem instantly disappeared, so it looks like the compatibility with greasemonkey got broken.
    Likewise, I'm very disappointed with the frequent bugs/annoyances that come with the rolling upgrade system; I find myself more and more using Chromium because of it. Mozilla really needs to give people the option to run a stable branch that receives security updates only.

  • Memory Leak in QueryCache - KODO 3.0.0

    The QueryCache in KODO 3.0.0 is apparently leaking copies of ObjectIDs. I
    have not checked with other versions of KODO. To demonstrate, do the
    following with "kodo.QueryCache: true" and with "kodo.QueryCache: false".
    Is this really a memory leak, or am I doing something wrong? Assuming it's
    real, is there a workaround other than disabling the query cache?
    public static void main( String args[] ) {
    try {
    PersistenceManagerFactory pmFactory =
    JDOHelper.getPersistenceManagerFactory(IDI.getProperties());
    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);
    ReferenceQueue rq = new ReferenceQueue();
    HashSet heldObjectIDs = new HashSet();
    for(int k=0; k<500000; k++){
    PersistenceManager pm = pmFactory.getPersistenceManager();
    Query q = pm.newQuery(Your_favorite_PC.class, "");
    Collection c = (Collection)q.execute();
    for(Iterator itr=c.iterator(); itr.hasNext(); ){
    PersistenceCapable pc = (PersistenceCapable)itr.next();
    heldObjectIDs.add( new SoftReference(pc.jdoGetObjectId(),
    rq));
    q.close(c);
    pm.close();
    Reference r;
    do {
    r = rq.poll();
    if (r != null){
    heldObjectIDs.remove(r);
    } while (r != null);
    if (k % 1000 == 0){
    System.out.println( "[" + k + "] - Held Object IDs = " +
    heldObjectIDs.size() );
    } catch (Exception ex){
    ex.printStackTrace();
    Keith L. Musser
    Integrated Dynamics, Inc.
    812-371-7777
    email: [email protected]
    Disclaimer - This email, and any files transmitted with it, are confidential
    and may contain privileged or copyright information. If you are not the
    intended recipient you must not copy, distribute or use this email, or the
    information contained herein, for any purpose other than to notify us. If
    you received this email in error, please notify the sender immediately, and
    delete this email from your system.

    Keith-
    This is a bug. I've entered it at:
    http://bugzilla.solarmetric.com/show_bug.cgi?id=798
    Thanks for reporting it.
    In article <bq2jbs$eds$[email protected]>, Keith Musser wrote:
    The QueryCache in KODO 3.0.0 is apparently leaking copies of ObjectIDs. I
    have not checked with other versions of KODO. To demonstrate, do the
    following with "kodo.QueryCache: true" and with "kodo.QueryCache: false".
    Is this really a memory leak, or am I doing something wrong? Assuming it's
    real, is there a workaround other than disabling the query cache?
    public static void main( String args[] ) {
    try {
    PersistenceManagerFactory pmFactory =
    JDOHelper.getPersistenceManagerFactory(IDI.getProperties());
    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);
    ReferenceQueue rq = new ReferenceQueue();
    HashSet heldObjectIDs = new HashSet();
    for(int k=0; k<500000; k++){
    PersistenceManager pm = pmFactory.getPersistenceManager();
    Query q = pm.newQuery(Your_favorite_PC.class, "");
    Collection c = (Collection)q.execute();
    for(Iterator itr=c.iterator(); itr.hasNext(); ){
    PersistenceCapable pc = (PersistenceCapable)itr.next();
    heldObjectIDs.add( new SoftReference(pc.jdoGetObjectId(),
    rq));
    q.close(c);
    pm.close();
    Reference r;
    do {
    r = rq.poll();
    if (r != null){
    heldObjectIDs.remove(r);
    } while (r != null);
    if (k % 1000 == 0){
    System.out.println( "[" + k + "] - Held Object IDs = " +
    heldObjectIDs.size() );
    } catch (Exception ex){
    ex.printStackTrace();
    Marc Prud'hommeaux [email protected]
    SolarMetric Inc. http://www.solarmetric.com

  • Tracking down a memory leak in LV8.2 when you can't use the profiler

    I am working with this large application. I have satisfied myself that it does have a memory leak by watching the Window's Task Manager while using the app.
    My first preference is to use the Profiler. However when I press 'Start' on the profiler, it instantly crashes LV. It does not do this for all VIs. I have tried to find the offending VI as narrowly as possible, but a VI that crashes profiler on one machine doesn't on another, so I gave that path up.
    If someone knows of a thread about the profiler crashing, please point me that way.
    Failing that, what kind of tips are there for tracking this leak down?
    Thanks!

    Hiya,
    Don't know of anything that will crash the profiler right off-hand, but it never struck me as the most... ah, robust bit of code in LV.
    As far as pre-existing tools, you could try the memmon.llb that lives in the National Instruments/<labview>/examples folder.  It should show the memory load of each vi in memory, though it may require a little retooling to get things into a view that you like.
    If you're on Windows, there are a number of tricks you can play with the SysInternals (now Microsoft) tools.  This usually boils down to watching lower level accesses to the operating system for patterns that look suspicious.  Not a high yield path, but occasionally it works.
    For methods, I like divide and conquer.  The more portions you can eliminate as NOT having the problem, the fewer portions of your code you have left to look for problems in.
    Tracking down memory leaks can be very difficult, but most show up in the end.
    Good bug hunting!
    Joe Z.

Maybe you are looking for

  • Can't Access Internal Servers From Behind An ASA 5505

    Hi all. I am having some trouble accessing some backup Email (Outlook Web Access) and Citrix servers located behind an ASA 5505 firewall at a remote datacentre. Simply put, when I go to the specific URL (e.g. https://citrixdr.xxx.co.uk) I do not arri

  • IPod Nano cant do what iPod Mini can

    My brother has an iPod Mini, and in iTunes, he can drag a video file right onto his iPod mini and he will get the audio from that video on his iPod. I tried the exact same video, the exact same way, and nothing happens. Why is this? Thanx Fraser

  • Invoice Plan

    Hi I have an invoice plan containing 5 items and the users have successfully ran the payment run against the 1st line item. When viewing the invoice plan via transaction me23n the field FKSAF is displaying 'C' (complete) but in the underlying databas

  • How to connect oracle DB installed in oracle VM from PC

    Hi I am trying to connect to oracle DB which is installed on oracle Virtual Machine from my PC.I can not succeed to connect with Oracle SQL developer.It is saying that can Network adapter can not establish connetion.Is there a specific configuration

  • Urgent!!!!a question about javabean....

    hello all: I set a javabean named mybean in request scope,and set it as valueRef of a form. first : form is show data from mybean . then : when user edit the form and submit to post,the edit data in form will update to javabean ,but can't not find ja