ORA-28112: failed to execute policy function - Error in Application Builder

Hey all,
I've added a policy function to one of my tables and now I'm getting this error when I try to update a report region that references that table.
"Query cannot be parsed within the Builder. If you believe your query is syntactically correct, check the ''generic columns'' checkbox below the region source to proceed without parsing. ORA-28112: failed to execute policy function"
If I remove the policy then everything works fine. My application also runs fine with the policy in place. I just get these errors in the application builder when updating a report or an LOV that references the secure table.
The parsing schema is APPL_USER.
Here is the policy function:
FUNCTION DOCUMENT_TABLE_POLICY (object_schema IN VARCHAR2 DEFAULT NULL
,object_name IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2 IS
v_nt_seq NUMBER;
BEGIN
IF user = 'APPL_USER' OR INSTR(user, 'ITFC_') = 1 THEN
RETURN NULL;
END IF;
IF V('APP_USER') IS NOT NULL THEN
IF V('F_NT_SEQ') IS NOT NULL THEN
v_nt_seq := V('F_NT_SEQ');
ELSE
SELECT NT_SEQ
INTO v_nt_seq
FROM APPL_USERS
WHERE UPPER(NT_ID) = UPPER(V('APP_USER'));
END IF;
RETURN '(DOCUMENT_TYPE, MANAGED_BY_ELEMENT, PROGRAM_CODE, CONTRACT_NUMBER) IN (SELECT DISTINCT R.DOCUMENT_TYPE, USL.ELEMENT, USL.PROGRAM_CODE, USL.CONTRACT_NUMBER FROM IPRACA_USERS_SECURITY_LINK USL, IPRACA_SECURITY_ROLES R WHERE R.SECURITY_ROLE_SEQ = USL.SECURITY_ROLE_SEQ AND USL.NT_SEQ = ' || TO_CHAR(v_nt_seq) || ')';
END IF;
--UNAUTHORIZED USERS CAN SEE NO DATA
RETURN '1=0';
END;
This is how I setup the policy:
BEGIN
DBMS_RLS.ADD_POLICY(
object_schema => 'APPL_USER'
,object_name => 'APPL_DOCUMENT'
,policy_name => 'APPL_DOCUMENT_POLICY'
,function_schema => 'APPL_USER'
,policy_function=> 'APPL_SECURITY.DOCUMENT_TABLE_POLICY'
END;
Any help would be greatly appreciated!
Thanks,
Jonathan Hart
APEX 3.1.1

Thanks.
After looking at it again, I think that may be the problem, too. I guess the APP_USER is set when in the application builder and the Builder is running the report query as it is being parsed which is causing the error. I added a Begin - Exception block around that query and everything seems to work now.
Thanks again!

Similar Messages

  • ORA 28112 - Failed to Execute Policy

    Hello All,
    Can you please help me in resolving the following issue:
    We are getting the ORA 28112 - Failed to Execute Policy error while running a custom BI Publisher report on production. However we are not facing the issue on test environment .
    Please let us know how to proceed about.
    Thank you.

    Prathima,
    I had the same issue few years back, query was woking in toad but not in Oracle Reports. A ticket was raised for the DBAs and they fixed the issue. How? I don't have any clue. Maybe they fixed the policy function. On my side i just gave them the table name which was raising this error. If you have any other enviroment like Development, Test, etc, log in to that environment and check if report still raises this error. When i had this issue, only one database was raising this error, all others were fine (by using report builder).
    FS

  • Failed to execute with the error Error occurred when starting the parser: t

    Dear All
    I am getting this error
    ""A database error occurred. The database error text is: The MDX query SELECT  { [DASKA1EDEL2DMLXTQ62S595QV].[DB7BP4A8AMQTUD3DPEEPS4J87] }  ON COLUMNS , NON EMPTY CROSSJOIN( CROSSJOIN( CROSSJOIN( CROSSJOIN( CROSSJOIN( [0CALMONTH].[LEVEL01].MEMBERS, [DASKFZ1TRFOLNTG78G0HH2B87].MEMBERS ), [0MATERIAL].[LEVEL01].MEMBERS ), [0PLANT].[LEVEL01].MEMBERS ), [0COMP_CODE].[LEVEL01].MEMBERS ), [0ACTDELDATE].[LEVEL01].MEMBERS ) DIMENSION PROPERTIES MEMBER_NAME, MEMBER_CAPTION ON ROWS FROM [0IC_C03/ZMATSTOCK]  failed to execute with the error Error occurred when starting the parser: timeout during allocate / CPIC-CALL: 'ThSAPCMRCV'. (WIS 10901)""
    I already went to similar kind of error solution in forum,but this error is coming for one web I query,all other reports are working fine.
    I already implemented note 1032461

    Hi,
    Under normal circumstances it should be enough to restart the connection service.
    As far as we know there is no formal solution to this problem from SAP yet but restarting the connection service is much less of an interuption compared to restarting the the SIA.
    Re-starting the connection service should resolve this issue. since, Connection service is only related to DeskI and Rich Client re-statrng wonu2019t impact other business objects components including java report panel.
    All the Best,
    Madhu....

  • Failed to execute with the error Overflow converting from...

    I have a query filter for UPC in Webi Report. The report is not working for one UPC (for other UPC's the report is working fine)...it gives error "failed to execute with the error Overflow converting from '6218090010'. (WIS 10901)". The same error is coming when I ran MDX in MDXTEST command in BW. When I take the UPC filter from the query filter the report runs fine and I see this UPC in the report. The data source is Bex and we have recently upgraded to SAP EHP 1 for SAP NetWeaver 7.0.
    Regards
    Sharma

    Hi,
    Under normal circumstances it should be enough to restart the connection service.
    As far as we know there is no formal solution to this problem from SAP yet but restarting the connection service is much less of an interuption compared to restarting the the SIA.
    Re-starting the connection service should resolve this issue. since, Connection service is only related to DeskI and Rich Client re-statrng wonu2019t impact other business objects components including java report panel.
    All the Best,
    Madhu....

  • XMLSocket "Failed to load policy file" error

    I am trying to use an XMLSocket.swf file, and it is not connecting.  Do I need to open up a port on my server?  I am trying to run this on a dedicated remote Windows 2008 server.
    Here is the error from FlashFirebug:
         OK: Root-level SWF loaded: file:///C|/Users/vcaadmin/AppData/Roaming/Mozilla/Firefox/Profiles/70vbx4ys.default/exten sions/flashfirebug%40o%2Dminds.com/chrome/content/flashfirebug.swf
        OK: Root-level SWF loaded: http://speak-tome.com/flash/XMLSocket.swf
        OK: Searching for <allow-access-from> in policy files to authorize data loading from resource at xmlsocket://speak-tome.com:9997 by requestor from http://speak-tome.com/flash/XMLSocket.swf
        Error: Failed to load policy file from xmlsocket://speak-tome.com:9997
        Error: Request for resource at xmlsocket://speak-tome.com:9997 by requestor from http://speak-tome.com/flash/XMLSocket.swf has failed because the server cannot be reached.
    My crossdomain.xml is saved to the root of the web directory and looks like:
        <?xml version="1.0"?>
        <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
        <cross-domain-policy>
        <site-control permitted-cross-domain-policies="master-only"/>
        <allow-access-from domain="*"/>
        <allow-http-request-headers-from domain="*" headers="SOAPAction"/>
        </cross-domain-policy>
    I notice that both ports 843 and 9997 are closed for my domain (speak-tome.com - 72.167.253.16) when I check using a service such as yougetsignal.com/tools/open-ports.  Do I need to get these ports open to get the policy file to work?

    As a test, I uploaded my Flash/Gaia site into an existing site on my old host.  And although the site actually works in this setting, when I run things in the FlashPlayerDebugger, I'm still getting Security Sandbox Violations - so (as adninjastrator suggested in earlier post), this may have nothing to do with the DNS changes - but perhaps with my setting things up wrong somewhere so that the Flashplayer is trying to access my local computer - maybe??
    Debugger logs gives me this:
    Error: Failed to load policy file from xmlsocket://127.0.0.1:5800
    Error: Request for resource at xmlsocket://127.0.0.1:5800 by requestor from http://recreationofthegods.com/bin/main.swf has failed because the server cannot be reached.
    *** Security Sandbox Violation ***
    So, I've now uploaded the identical bin (which contains all the files for my site) - but I'm getting different behaviors on the two hosts.
    On the new holistic servers, the site won't go past the first page:  www.yourgods.com
    On the 1&1 servers, I still get runtime errors in FlashPlayerDebugger - but the site runs ok - http://www.RecreationOfTheGods.com/bin/index.html
    Posting those links in hopes someone with more experience in these sandbox issues can help steer me in the right direction.

  • Error message "VI is not executable"! Need help with Application Builder

    Hello,
    I have a problem with an application, built with the Application Builder. I have read some threads about the problem I have, but I still don't know a solution.
    When I run my front panel from LabVIEW, everything is good. So, now I created an application (and an installer) to be able to run it on other PCs as well. This application does not work. Everytime I start it on my PC, I get the error "VI is not executable. ...". I read in several forums solutions for this error, but I cannot fix it! I've changed my properties for the builder, but with no success. Perhaps, anybody has more ideas, what's the problem.
    To get a better idea from my project, here a little description of it:
    In the block diagram there is a while loop which is continuously runned. In this loop I only set some properties for the layout of the front panel, such as decorations which will be hidden/shown and changes of colours of indicators... For the rest, it waits for a click on the button "Start" in the front panel. After that, a DLL is called to communicate with a USB device. Some measurements are carried out and the DLL is closed. I hope, you can get a global idea from my block diagram...
    I use LabVIEW 8.5, the DLL is a third-party DLL, which we wrote on our own. But I think the DLL works properly, if it is called from a C# application it works and it works, too, by calling it from LabVIEW when I am in development mode.
    It's a project for university and I'm just a beginner in LabVIEW, so I don't have so much experiences in it, but I think i improved my knowlegde about LabVIEW very well in the last weeks!
    So, i hope to get an answer soon (the deadline for the project is not soooo far away )
    If you need more information, please let it know...
    I would be very grateful if there is someone with a working solution...
    Kind regards from the Netherlands,
    Sebastian

    Sebastian,
    Your architecture makes it very difficult to debug this and other problems.  Does the error message mention which VI is causing the problem?  It is very important to wire your error clusters everywhere.  In LabVIEW, when a node throws an error (Error.Status = T), future nodes do not execute.  At the end, place an error cluster indicator that you can see on your front panel.  When an error posts, you can right click the indicator (even in a compiled application) and select "Explain Error".
    This is a start, but you really need to push this into a queued-state machine before this gets any more complicated.  As it were, if anything in your loop hangs, your whole application hangs.  See attached for a queued-message handler (not advisable for actual applications, but you get the point.  You would want to have a type defined enum in lieu of strings, and shared data between states differently, etc.)
    -Jason
    Message Edited by LabBEAN on 01-20-2009 08:36 AM
    Certified LabVIEW Architect
    Wait for Flag / Set Flag
    Separate Views from Implementation for Strict Type Defs
    Attachments:
    State Machine.vi ‏18 KB

  • Build dll error in application builder 8.6.1

    Hello,
    I get always an error in the LV 8.6 application builder, when I build a dll. There is only one function in it, that has a string and an error input, and nothing else. I attach a screenshot of the VI prototype, and hier is the error description:
    Error 1 occurred at Building DLL.
    A component needed for Application Builder does not support the required functionality. This might have been caused by installing an older version of LabVIEW after this version was installed. Reinstall the current LabVIEW version to correct this issue.
    Possible reason(s):
    LabVIEW:  An input parameter is invalid. For example if the input is a path, the path might contain a character not allowed by the OS such as ? or @.
    =========================
    NI-488:  Command requires GPIB Controller to be Controller-In-Charge.
    After that I reinstalled LV8.6, I tried to reinstall only the 8.6 app builder, but no success.

    Hello,
    thank you for the reply.
    I have solved the problem. I uninstalled the last installed LV version, this was 8.0. Then ran appbuilder again in 8.6, then I have got an instruction to run applibs\lvdllbuilder\lvdb.exe. Since then works.
    regards
    Mitulatbati

  • Objheap.cpp error in application builder

    Hello everybody.
    I am trying to build my application but I get the error: error in objheap.cpp line 474.
    I have seen in previous answers in the discussion forums that someone got the same error, but not in the application builder but when trying to open the main.vi of the application in the development system. I have read that the reason for that was that a vi became corrupted.
    But this is different. The error message is the same, but I can open the main vi of my application in the development system with no problems. I only get the error message when I run the application builder trying to build the application.
    Anyone can help me?
    Thanks in advance

    Even though VI runs fine in the development environment, it may still be corrupted. It might be the case that there is an error in the vi.lib VIs. I recommend copying the block diagram of the VI in question to a new VI and rebuilding. If that does not help, consider a reinstall of LabVIEW or posting your VI to see if others can build it.

  • Error in Application Builder

    Hi Friends,
    I have installed Oracle Apex 3.1 successfully. When i click application Builder i am gettin the following error. I hope i have installed full version. Is there a way to chek whether i did only runtime only?
    application=4000 workspace=10
    Error ERR-1014 Application not found.
    OK
    Looking forward to your assisting :)
    Thank You

    That's not good. Maybe you installed the runtime-only version.
    Scott

  • Failed to execute SP with error PLS-00201

    I've stored procedure called CAL_TAX which create by schema EMP_DBA, right now I want to grant execute right on this SP to user USER1. I've execute below statement:
    CREATE USER USER1 IDENTIFIED BY USER1234;
    GRANT CONNECT TO USER1;
    GRANT RESOURCE TO USER1;
    GRANT CREATE SESSION TO USER1;
    GRANT EXECUTE ON EMP_DBA.CAL_TAX TO USER1;
    DECLARE
    CURSOR C1 IS SELECT TABLE_NAME FROM USER_TABLES;
    CMD VARCHAR2(200);
    BEGIN
    FOR C IN C1 LOOP
    CMD:='GRANT SELECT ON ' || C.TABLE_NAME || ' TO USER1';
    EXECUTE IMMEDIATE CMD;
    END LOOP;
    END;
    When I connect as USER1 and execute SP CAL_TAX, I received below error messages. Can anyone help me on this ? I've no problem to execute SP if connect as EMP_DBA
    BEGIN CAL_TAX; END;
    ERROR AT LINE 1:
    ORA-06550: LINE 1, COLUMN 7:
    PLS-00201: IDENTIFIER 'CAL_TAX' MUST BE DECLARED
    ORA-06550:LINE 1, COLUMN 7:
    PL/SQL: STATEMENT IGNORED
    This is the part of the SP CAL_TAX, could it AUTHID CURRENT_USER caused this problem ?
    CREATE OR REPLACE PROCEDURE CAL_TAX
    AUTHID CURRENT_USER
    IS

    When I connect as USER1 and execute SP CAL_TAX, I received below error messages. Can anyone help me on this ? I've no problem to execute SP if connect as EMP_DBA
    BEGIN CAL_TAX; END;
    You are connected as USER1 trying to execute a procedure named CAL_TAX.
    But USER1 does not own any object named CAL_TAX so you  get the exception.
    User EMP_DBA owns object CAL_TAX so USER1 has to provide the schema prefix to reference that object
    BEGIN
       EMP_DBA.CAL_TAX;
    END;
    If you create a public synonym then USER1 can use the synonym to reference the object.

  • LV2010 - Error 74 Application Builder

    Hi,
    I have migrated a LabVIEW project from LabVIEW 2009 SP1 to LabVIEW 2010. Everything works fine - execution in development system - except the compilation of the build specification. I have tried it several times with different options --> new project from scratch, new build specification with no success. Everytime error 74. I have attached a screenshot and two logfiles.
    Attachments:
    CTS_PP_CTS-PP-LOGGER_log.txt ‏58 KB
    hc_002.jpg ‏548 KB
    LabVIEW_32_10.0_sysadmin_cur.txt ‏2 KB

    Hi Joachim,
    can you upload your code to the FTP server from NI, so that I can test your code by myself?
    Upload:
    "Please put your project files into a zip file and include your name (joachim082.zip ). Then upload the file to ftp://ftp.ni.com/incoming using a web browser or FTP program.
    If you are using any National Instruments hardware, it will also be helpful if you export your MAX configuration and include that it in the zip file so that I can simulate your exact setup.  To do this, open Measurement & Automation Explorer and go to File » Export.. and follow the instructions of the wizard. Be sure to "check all" when prompted for what configurations you want to export.
    Once the upload is complete, please reply to this post and let me know it is there."
    Regards,
    Mary
    NIG

  • Problem with VPD policy function

    Hi All,
    I'm trying to secure database tables with VPD and getting "ORA-28112: failed to execute policy function" error when I query the table.
    --My schema is "sales"
    grant crete any context to sales;
    -- created context using this statement
    create OR REPLACE context sales_APP_CTX using PKG_SECURITY ACCESSED GLOBALLY;
    -- Package spec
    CREATE OR REPLACE PACKAGE PKG_SECURITY is
    function vpd_sec_pol_func return varchar2 ;
    procedure set_sales_app_context(p_user varchar2,p_security_level varchar2);
    end;
    -- package body
    CREATE OR REPLACE PACKAGE BODY PKG_SECURITY is
    function vpd_sec_pol_func return varchar2 is
    -- v_user varchar2(100) := UPPER(portal.wwctx_api.get_user);
    begin
    if user not in ('SALES','ORACLE') then
    return ' state in (select state from app_user_states where user_id = sys_context(''SALES_APP_CTX'', ''APP_USER''))';
    else
    return null;
    end if;
    end;
    procedure set_sales_app_context(p_user varchar2,p_security_level varchar2) is
    begin
    dbms_session.set_context('SALES_APP_CTX','APP_USER',p_user);
    -- dbms_session.set_context('SALES_APP_CTX','SECURITY_LEVEL',p_security_level);
    end;
    end;
    -- Added the policy to the table
    begin
    dbms_rls.add_policy
    ( object_schema => 'SALES',
    object_name => 'SALES_SUMMARY',
    policy_name => 'SALES_SUMMARY_POLICY',
    function_schema => 'SALES',
    policy_function => 'PKG_SECURITY.VPD_SEC_POL_FUNC',
    statement_types => 'SELECT,INSERT,UPDATE,DELETE' ,
    update_check => TRUE );
    end;
    -- I was able to set context using sqlplus by executing the procedure
    exec PKG_SECURITY.set_sales_app_context('TEST_USER','R');
    What am I doing wrong?
    Thanks

    Hi,
    ml_huang wrote:
    Is it necessary to create 'Context' and 'Procedure' before the function and policy?It is not necessary to create a context.
    A context can be very useful for doing row-level security, but it is not required.
    Even if you are using SYS_CONTEXT, you can create the function first, if you want to.
    Sorry, I don't understand what 'Procedure' you mean.
    I have created a function (with no parameters) and a policy and kept getting the Ora-28112 error.Policy functions must accept 2 VARCHAR2 parameters. See the messages above.
    Any suggestions for me? Thanks!Start your own thread for your own question.
    I think more people will want to read (and therefore respond to) a new message with 0 replies than a 3-month old message with 4 replies.

  • Row Level Security - using a policy function.

    Hi,
    I am trying to implement RLS within our database and am getting the following error message:
    ORA-28112: failed to execute policy function
    Looking around the web, these seems to point to un-handled exception in my function, but I cannot seem to find anything untoward.
    I have tested the function and can confrim that it is returning the desired predicate where appropriate..
    Here is the function..
      FUNCTION Fnc_Rls_Control(Pin_Schema IN VARCHAR2) RETURN VARCHAR2 IS
        -- Author:  MLLOYD
        -- Purpose: Policy function that supplies a predicate to limit access to tables based
        --          on the site code
        -- Created: 30/12/2010
        -- Revision History
        -- Date            Version        Comments
        -- 30/12/2010         1           Created
        CURSOR Cur_Rls_Site IS
          SELECT s.Site_Code
          FROM   All_Users u
          INNER  JOIN Rls_Discoverer_User_Role Ur
          ON     Ur.User_Id = u.User_Id
          INNER  JOIN Rls_Discoverer_Roles r
          ON     r.Role_Id = Ur.Role_Id
          INNER  JOIN Rls_Discoverer_Role_Sites Rs
          ON     Rs.Role_Id = r.Role_Id
          INNER  JOIN Commons.t_Site_Codes s
          ON     s.Siteid = Rs.Site_Id
          WHERE  u.Username = USER;
        Rec_Rls_Site Cur_Rls_Site%ROWTYPE;
        Lcl_Predicate    VARCHAR2(2000);
        Lcl_Return_Value VARCHAR2(2000);
      BEGIN
        Lcl_Predicate    := NULL;
        Lcl_Return_Value := NULL;
        -- CHECK IF USER IS OWNER OF SCHEMA, IF SO, NO PREDICATE 
        IF Pin_Schema = USER THEN
          Lcl_Return_Value := NULL;
        ELSE
          -- OBTAIN SITE CODES AVAILABLE TO USER
          OPEN Cur_Rls_Site;
          LOOP
            FETCH Cur_Rls_Site
              INTO Rec_Rls_Site;
            EXIT WHEN Cur_Rls_Site%NOTFOUND;
            Lcl_Predicate := Lcl_Predicate || q'(')' || Rec_Rls_Site.Site_Code ||
    q'(')' || ',';
          END LOOP;
          IF Lcl_Predicate IS NULL THEN
            Lcl_Return_Value := NULL;
          ELSE
            -- REMOVE TRAILING COMMA
            Lcl_Predicate := Rtrim(Lcl_Predicate,
            -- BUILD FINAL PREDICATE
            Lcl_Return_Value := 'SITE_CODE IN (' || Lcl_Predicate || ')';
          END IF;
          CLOSE Cur_Rls_Site;
        END IF;
        RETURN Lcl_Return_Value;
      EXCEPTION
        WHEN OTHERS THEN
          IF Cur_Rls_Site%ISOPEN THEN
            CLOSE Cur_Rls_Site;
            RETURN Lcl_Return_Value;
          END IF;
      END Fnc_Rls_Control;
      -- ************************************************************************************I have applied this to a specifc table using the following:
    -- ADD POLICY
    BEGIN
      DBMS_RLS.ADD_POLICY (
        object_schema    => 'REPORTING',
        object_name      => 'URS_OP_VISIT_STATISTICS',
        policy_name      => 'ACCESS_POLICY',
        function_schema  => 'REPORTING',
        policy_function  => 'PKG_REPORTING.FNC_RLS_CONTROL',
        statement_types  => 'SELECT'
    END;Have I missed anything obvious?
    Regards
    Mark

    Policy function must have two IN paranters on varchar2 type and return varchar2 .
    So add second parametr to you function.
    Simple example
    CREATE OR REPLACE FUNCTION auth_orders(
    schema_var IN VARCHAR2,
    table_var  IN VARCHAR2
    RETURN VARCHAR2
    IS 
    return_val VARCHAR2 (400);
    BEGIN
    return_val := 'SALES_REP_ID = 159';
    RETURN return_val;
    END auth_orders;
    /First parametr is schema_name second parametr is object name. So you can have one universal function that on IN parameters return appropriate where condition.

  • XPath expression failed to execute.

    Hi Everybody ,
    I am working  AIA PIP 3.1 for JDE E1.I am facing some errors so that i can't proceed.
    See the log errors as below:
    javax.xml.ws.soap.SOAPFaultException: XPath expression failed to execute. An error occurs while processing the XPath expression; the expression is ora:processXSLT('xsl/Xform_BillOfMaterialsListABM_to_BillOfMaterialsListAXML.xsl',bpws:getVariableData('InitialLoadBillOfMaterialsListReqMsg','InitialLoadBillOfMaterialsList'),bpws:getVariableData('Parameters')). The XPath expression failed to execute; the reason was: oracle.fabric.common.xml.xpath.XPathFunctionException: javax.xml.transform.TransformerException: oramds:/deployed-composites/default/InitialLoadBillOfMaterialsListJDEE1toAgileImpl_rev1.0/xsl/Xform_BillOfMaterialsListABM_to_BillOfMaterialsListAXML.xsl<Line 18, Column 271>: XML-22044: (Error) Extension function error: Error invoking 'lookupXRef':'oracle.tip.xref.exception.RepositoryException: lookup could not find values in column name "AGILE_01" for table name "oramds:/apps/AIAMetaData/xref/ITEM_ITEMID.xref" using reference column name "JDEE1_01" and reference value "731882::M30" Please ensure lookup criteria has a match.'. Check the detailed root cause described in the exception message text and verify that the XPath query is correct.
    Please reply me ASAP,
    Waiting for your response.....
    Regards
    Jyoti Nayak

    Hi,
    Ya i checked the data for same table,but i didn't get any XREF related information in xref_data table.
    Did you mean that, data should already present under AIAFPINST_XREF.Probably xref is meant for storing dynamic value.
    Please check the above error and reply me soon.
    With Regards
    Jyoti Nayak

  • [Solved] "slim: failed to execute login command" after awesomewm updat

    Hi,
    i updated some weeks ago via pacman -Syu, where also awesome wm was updated from 3.4.* to 3.5.* so I updated my rc.lua as it is told on their wiki, but i cant login with my rc.lua anymore i got the failed to execute login command error from slime. If i use the shipped efault rc.lua it works fine, can someone help me to figure out whats wrong with my rc.lua?
    -- Standard awesome library
    local gears = require("gears")
    local awful = require("awful")
    awful.rules = require("awful.rules")
    require("awful.autofocus")
    -- Widget and layout library
    local wibox = require("wibox")
    -- Theme handling library
    local beautiful = require("beautiful")
    -- Notification library
    local naughty = require("naughty")
    local menubar = require("menubar")
    local vicious = require("vicious")
    function fullscreens(c)
    awful.client.floating.toggle(c)
    if awful.client.floating.get(c) then
    local clientX = screen[1].workarea.x
    local clientY = screen[1].workarea.y
    local clientWidth = 0
    -- look at http://www.rpm.org/api/4.4.2.2/llimits_8h-source.html
    local clientHeight = 2147483640
    for s = 1, screen.count() do
    clientHeight = math.min(clientHeight, screen[s].workarea.height)
    clientWidth = clientWidth + screen[s].workarea.width
    end
    local t = c:geometry({x = clientX, y = clientY, width = clientWidth, height = clientHeight})
    else
    --apply the rules to this client so he can return to the right tag if there is a rule for that.
    awful.rules.apply(c)
    end
    -- focus our client
    client.focus = c
    end
    -- {{{ Error handling
    -- Check if awesome encountered an error during startup and fell back to
    -- another config (This code will only ever execute for the fallback config)
    if awesome.startup_errors then
    naughty.notify({ preset = naughty.config.presets.critical,
    title = "Oops, there were errors during startup!",
    text = awesome.startup_errors })
    end
    -- Handle runtime errors after startup
    do
    local in_error = false
    awesome.connect_signal("debug::error", function (err)
    -- Make sure we don't go into an endless error loop
    if in_error then return end
    in_error = true
    naughty.notify({ preset = naughty.config.presets.critical,
    title = "Oops, an error happened!",
    text = err })
    in_error = false
    end)
    end
    -- {{{ Variable definitions
    -- Themes define colours, icons, and wallpapers
    -- beautiful.init("/home/kili/Repositories/awesome-themes/arch/theme.lua")
    beautiful.init("/usr/share/awesome/themes/default/theme.lua")
    -- This is used later as the default terminal and editor to run.
    terminal = "urxvt"
    editor = os.getenv("EDITOR") or "nano"
    editor_cmd = terminal .. " -e " .. editor
    -- Default modkey.
    -- Usually, Mod4 is the key with a logo between Control and Alt.
    -- If you do not like this or do not have such a key,
    -- I suggest you to remap Mod4 to another key using xmodmap or other tools.
    -- However, you can use another modifier like Mod1, but it may interact with others.
    modkey = "Mod4"
    -- Table of layouts to cover with awful.layout.inc, order matters.
    layouts =
    awful.layout.suit.tile,
    awful.layout.suit.tile.left,
    awful.layout.suit.tile.bottom,
    awful.layout.suit.tile.top,
    awful.layout.suit.floating,
    awful.layout.suit.fair,
    awful.layout.suit.fair.horizontal,
    awful.layout.suit.spiral,
    awful.layout.suit.spiral.dwindle,
    awful.layout.suit.max,
    awful.layout.suit.max.fullscreen,
    awful.layout.suit.magnifier
    -- {{{ Tags
    -- Define a tag table which hold all screen tags.
    tags = {}
    for s = 1, screen.count() do
    -- Each screen has its own tag table.
    tags[s] = awful.tag({ 1, 2, 3, 4, 5}, s, layouts[1])
    end
    -- {{{ Menu
    -- Create a laucher widget and a main menu
    myawesomemenu = {
    { "manual", terminal .. " -e man awesome" },
    { "edit config", editor_cmd .. " " .. awesome.conffile },
    { "restart", awesome.restart },
    { "quit", awesome.quit }
    mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
    { "open terminal", terminal }
    mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, menu = mymainmenu })
    -- {{{ Wibox
    -- Create a textclock widget
    batwidget = wibox.widget.textbox()
    vicious.register(batwidget, vicious.widgets.bat,
    function(widget,args)
    local formatstring = " Bat: "..args[1]..args[2] .."%".. " "..args[3] .. " "
    if args[2] <= 25 and args[1] == "-" then
    return "<span color=\"red\">".. formatstring .. "</span>"
    end
    return formatstring
    end, 60, "BAT0")
    netwidgetETH = wibox.widget.textbox()
    netwidgetWIFI = wibox.widget.textbox()
    vicious.register(netwidgetETH, vicious.widgets.net, ' eth0:<span color="#CC9393">${eth0 down_kb}</span> <span color="#7F9F7F">${eth0 up_kb}</span>', 3)
    vicious.register(netwidgetWIFI, vicious.widgets.net,' wlan0:<span color="#CC9393">${wlan0 down_kb}</span> <span color="#7F9F7F">${wlan0 up_kb}</span>', 3)
    menubar.utils.terminal = terminal
    mytextclock = awful.widget.textclock()--{ align = "right" })
    -- Create a systray
    mysystray = wibox.widget.systray()
    -- Create a wibox for each screen and add it
    mywibox = {}
    mypromptbox = {}
    mylayoutbox = {}
    mytaglist = {}
    mytaglist.buttons = awful.util.table.join(
    awful.button({ }, 1, awful.tag.viewonly),
    awful.button({ modkey }, 1, awful.client.movetotag),
    awful.button({ }, 3, awful.tag.viewtoggle),
    awful.button({ modkey }, 3, awful.client.toggletag),
    awful.button({ }, 4, function(t) awful.tag.viewnext(aweful.tag.getscreen(t)) end),
    awful.button({ }, 5, function(t) awful.tag.viewprev(aweful.tag.getscreen(t)) end)
    mytasklist = {}
    mytasklist.buttons = awful.util.table.join(
    awful.button({ }, 1, function (c)
    if c == client.focus then
    c.minimized = true
    else
    c.minimized = false
    if not c:isvisible() then
    awful.tag.viewonly(c:tags()[1])
    end
    -- This will also un-minimize
    -- the client, if needed
    client.focus = c
    c:raise()
    end
    end),
    awful.button({ }, 3, function ()
    if instance then
    instance:hide()
    instance = nil
    else
    instance = awful.menu.clients({ width=250 })
    end
    end),
    awful.button({ }, 4, function ()
    awful.client.focus.byidx(1)
    if client.focus then client.focus:raise() end
    end),
    awful.button({ }, 5, function ()
    awful.client.focus.byidx(-1)
    if client.focus then client.focus:raise() end
    end))
    for s = 1, screen.count() do
    -- Create a promptbox for each screen
    mypromptbox[s] = awful.widget.prompt()--{ layout = awful.widget.layout.horizontal.leftright })
    -- Create an imagebox widget which will contains an icon indicating which layout we're using.
    -- We need one layoutbox per screen.
    mylayoutbox[s] = awful.widget.layoutbox(s)
    mylayoutbox[s]:buttons(awful.util.table.join(
    awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end),
    awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end),
    awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end),
    awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end)))
    -- Create a taglist widget
    mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.filter.all, mytaglist.buttons)
    -- Create a tasklist widget
    mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons)
    -- Create the wibox
    mywibox[s] = awful.wibox({ position = "top", screen = s })
    -- Widgets that are aligned to the left
    local left_layout = wibox.layout.fixed.horizontal()
    left_layout:add(mylauncher)
    left_layout:add(mytaglist[s])
    left_layout:add(mypromptbox[s])
    -- Widgets that are aligned to the right
    local right_layout = wibox.layout.fixed.horizontal()
    if s == 1 then right_layout:add(wibox.widget.systray()) end
    right_layout:add(netwidgetWIFI)
    right_layout:add(netwidgetETH)
    right_layout:add(batwidget)
    right_layout:add(mytextclock)
    right_layout:add(mylayoutbox[s])
    -- Now bring it all together (with the tasklist in the middle)
    local layout = wibox.layout.align.horizontal()
    layout:set_left(left_layout)
    layout:set_middle(mytasklist[s])
    layout:set_right(right_layout)
    mywibox[s]:set_widget(layout)
    -- Add widgets to the wibox - order matters
    --mywibox[s].widgets = {
    -- mylauncher,
    -- mytaglist[s],
    -- mypromptbox[s],
    --layout = awful.widget.layout.horizontal.leftright
    -- mylayoutbox[s],
    -- mytextclock,
    -- batwidget,
    -- netwidgetETH,
    -- netwidgetWIFI,
    -- s == 1 and mysystray or nil,
    -- mytasklist[s],
    -- layout = awful.widget.layout.horizontal.rightleft
    end
    -- {{{ Mouse bindings
    root.buttons(awful.util.table.join(
    awful.button({ }, 3, function () mymainmenu:toggle() end),
    awful.button({ }, 4, awful.tag.viewnext),
    awful.button({ }, 5, awful.tag.viewprev)
    -- {{{ Key bindings
    globalkeys = awful.util.table.join(
    awful.key({ modkey, }, "Left", awful.tag.viewprev ),
    awful.key({ modkey, }, "Right", awful.tag.viewnext ),
    awful.key({ modkey, }, "Escape", awful.tag.history.restore),
    awful.key({ modkey, }, "j",
    function ()
    awful.client.focus.byidx( 1)
    if client.focus then client.focus:raise() end
    end),
    awful.key({ modkey, }, "k",
    function ()
    awful.client.focus.byidx(-1)
    if client.focus then client.focus:raise() end
    end),
    awful.key({ modkey, }, "w", function () mymainmenu:show() end),
    -- Layout manipulation
    awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end),
    awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
    awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end),
    awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end),
    awful.key({ modkey, }, "u", awful.client.urgent.jumpto),
    awful.key({ modkey, }, "Tab",
    function ()
    awful.client.focus.history.previous()
    if client.focus then
    client.focus:raise()
    end
    end),
    -- Standard program
    awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
    awful.key({ modkey, "Control" }, "r", awesome.restart),
    awful.key({ modkey, "Shift" }, "q", awesome.quit),
    awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end),
    awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end),
    awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
    awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
    awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1) end),
    awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
    awful.key({ modkey, }, "space", function () awful.layout.inc(layouts, 1) end),
    awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end),
    awful.key({ modkey, "Control" }, "n", awful.client.restore),
    -- Prompt
    awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
    awful.key({ modkey }, "x",
    function ()
    awful.prompt.run({ prompt = "Run Lua code: " },
    mypromptbox[mouse.screen].widget,
    awful.util.eval, nil,
    awful.util.getdir("cache") .. "/history_eval")
    end),
    -- Multimedia
    awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("amixer -q sset Master 2dB-") end),
    awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer -q sset Master 2dB+") end),
    awful.key({ }, "XF86AudioNext",function () awful.util.spawn( "mocp -f" ) end),
    awful.key({ }, "XF86AudioPrev",function () awful.util.spawn( "mocp -r" ) end),
    awful.key({ }, "XF86AudioPlay",function () awful.util.spawn( "mocp -G" ) end),
    awful.key({ }, "Print", function () awful.util.spawn("ksnapshot") end),
    awful.key({ }, "", function () awful.util.spawn("slimlock") end)
    clientkeys = awful.util.table.join(
    awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end),
    awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end),
    awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ),
    awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end),
    awful.key({ modkey, }, "o", awful.client.movetoscreen ),
    -- awful.key({ modkey, "Shift" }, "r", function (c) c:redraw() end),
    awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end),
    awful.key({ modkey, }, "n",
    function (c)
    -- The client currently has the input focus, so it cannot be
    -- minimized, since minimized clients can't have the focus.
    c.minimized = true
    end),
    awful.key({ modkey, }, "m",
    function (c)
    c.maximized_horizontal = not c.maximized_horizontal
    c.maximized_vertical = not c.maximized_vertical
    end),
    awful.key({ modkey, "Shift" }, "f", fullscreens)
    -- Compute the maximum number of digit we need, limited to 9
    keynumber = 0
    for s = 1, screen.count() do
    keynumber = math.min(9, math.max(#tags[s], keynumber))
    end
    -- Bind all key numbers to tags.
    -- Be careful: we use keycodes to make it works on any keyboard layout.
    -- This should map on the top row of your keyboard, usually 1 to 9.
    for i = 1, keynumber do
    globalkeys = awful.util.table.join(globalkeys,
    awful.key({ modkey }, "#" .. i + 9,
    function ()
    local screen = mouse.screen
    if tags[screen][i] then
    awful.tag.viewonly(tags[screen][i])
    end
    end),
    awful.key({ modkey, "Control" }, "#" .. i + 9,
    function ()
    local screen = mouse.screen
    if tags[screen][i] then
    awful.tag.viewtoggle(tags[screen][i])
    end
    end),
    awful.key({ modkey, "Shift" }, "#" .. i + 9,
    function ()
    if client.focus and tags[client.focus.screen][i] then
    awful.client.movetotag(tags[client.focus.screen][i])
    end
    end),
    awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
    function ()
    if client.focus and tags[client.focus.screen][i] then
    awful.client.toggletag(tags[client.focus.screen][i])
    end
    end))
    end
    clientbuttons = awful.util.table.join(
    awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
    awful.button({ modkey }, 1, awful.mouse.client.move),
    awful.button({ modkey }, 3, awful.mouse.client.resize))
    -- Set keys
    root.keys(globalkeys)
    -- Set Firefox to always map on tags number 2 of screen 1.
    -- { rule = { class = "Firefox" },
    -- properties = { tag = tags[1][2] } },
    -- {{{ Rules
    if screen.count() > 1 then
    awful.rules.rules = {
    -- All clients will match this rule.
    { rule = { },
    properties = { border_width = beautiful.border_width,
    -- border_color = beautiful.border_normal,
    focus = true,
    keys = clientkeys,
    buttons = clientbuttons } },
    { rule = { class = "MPlayer" },
    properties = { floating = true } },
    { rule = { class = "gimp" },
    properties = { floating = true } },
    { rule = { class = "Xdialog" },
    properties = { floating = true } },
    { rule = { class = "Firefox" },
    properties = { tag = tags[1][1] } },
    { rule = { name = "Thunderbird" },
    properties = { tag = tags[1][2] } },
    { rule = { instance = "plugin-container" },
    properties = { floating = true } },
    { rule = { class = "Luakit" },
    properties = { floating = true } }
    else
    awful.rules.rules = {
    -- All clients will match this rule.
    { rule = { },
    properties = { border_width = beautiful.border_width,
    -- border_color = beautiful.border_normal,
    focus = true,
    keys = clientkeys,
    buttons = clientbuttons } },
    { rule = { class = "MPlayer" },
    properties = { floating = true } },
    { rule = { class = "gimp" },
    properties = { floating = true } },
    { rule = { class = "Firefox" },
    properties = { tag = tags[1][2] } },
    { rule = { name = "Thunderbird" },
    properties = { tag = tags[1][3] } },
    { rule = { instance = "plugin-container" },
    properties = { floating = true, fullscreen = true } },
    { rule = { class = "Dolphin" },
    properties = { floating = false, fullscreen = false, tag = tags[1][4] } },
    { rule = { class = "Luakit" },
    properties = { floating = true } },
    { rule = { class = "Pidgin" },
    properties = { tag = tags[1][5] } }
    end
    -- {{{ Signals
    -- Signal function to execute when a new client appears.
    client.connect_signal("manage", function (c, startup)
    -- Add a titlebar
    -- awful.titlebar.add(c, { modkey = modkey })
    -- Enable sloppy focus
    c:connect_signal("mouse::enter", function(c)
    if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
    and awful.client.focus.filter(c) then
    client.focus = c
    end
    end)
    if not startup then
    -- Set the windows at the slave,
    -- i.e. put it at the end of others instead of setting it master.
    -- awful.client.setslave(c)
    -- Put windows in a smart way, only if they does not set an initial position.
    if not c.size_hints.user_position and not c.size_hints.program_position then
    awful.placement.no_overlap(c)
    awful.placement.no_offscreen(c)
    end
    end
    local titlebars_enabled = false
    if titlebars_enabled and (c.type == "normal" or c.type == "dialog") then
    -- Widgets that are aligned to the left
    local left_layout = wibox.layout.fixed.horizontal()
    left_layout:add(awful.titlebar.widget.iconwidget(c))
    -- Widgets that are aligned to the right
    local right_layout = wibox.layout.fixed.horizontal()
    right_layout:add(awful.titlebar.widget.floatingbutton(c))
    right_layout:add(awful.titlebar.widget.maximizedbutton(c))
    right_layout:add(awful.titlebar.widget.stickybutton(c))
    right_layout:add(awful.titlebar.widget.ontopbutton(c))
    right_layout:add(awful.titlebar.widget.closebutton(c))
    -- The title goes in the middle
    local title = awful.titlebar.widget.titlewidget(c)
    title:buttons(awful.util.table.join(
    awful.button({ }, 1, function()
    client.focus = c
    c:raise()
    awful.mouse.client.move(c)
    end),
    awful.button({ }, 3, function()
    client.focus = c
    c:raise()
    awful.mouse.client.resize(c)
    end)
    -- Now bring it all together
    local layout = wibox.layout.align.horizontal()
    layout:set_left(left_layout)
    layout:set_right(right_layout)
    layout:set_middle(title)
    awful.titlebar(c):set_widget(layout)
    end
    end)
    client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
    client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
    Here is also my slime config and my initrc
    ls -lisa .xinitrc
    3276814 4 -rwxr-xr-x ...
    #!/bin/sh
    xrdb -merge ~/.Xresources
    wicd-client --tray &
    exec awesome #>> ~/.cache/awesome/stdout 2>> ~/.cache/awesome/stderr
    # Path, X server and arguments (if needed)
    # Note: -xauth $authfile is automatically appended
    default_path /bin:/usr/bin:/usr/local/bin
    default_xserver /usr/bin/X
    xserver_arguments -nolisten tcp vt07
    # Commands for halt, login, etc.
    halt_cmd /sbin/shutdown -h now
    reboot_cmd /sbin/shutdown -r now
    console_cmd /usr/bin/xterm -C -fg white -bg black +sb -T "Console login" -e /bin/sh -c "/bin/cat /etc/issue; exec /bin/login"
    #suspend_cmd /usr/sbin/suspend
    # Full path to the xauth binary
    xauth_path /usr/bin/xauth
    # Xauth file for server
    authfile /var/run/slim.auth
    # Activate numlock when slim starts. Valid values: on|off
    numlock on
    # Hide the mouse cursor (note: does not work with some WMs).
    # Valid values: true|false
    # hidecursor false
    # This command is executed after a succesful login.
    # you can place the %session and %theme variables
    # to handle launching of specific commands in .xinitrc
    # depending of chosen session and slim theme
    # NOTE: if your system does not have bash you need
    # to adjust the command according to your preferred shell,
    # i.e. for freebsd use:
    # login_cmd exec /bin/sh - ~/.xinitrc %session
    login_cmd exec /bin/bash -login ~/.xinitrc %session
    # Commands executed when starting and exiting a session.
    # They can be used for registering a X11 session with
    # sessreg. You can use the %user variable
    # sessionstart_cmd some command
    # sessionstop_cmd some command
    # Start in daemon mode. Valid values: yes | no
    # Note that this can be overriden by the command line
    # options "-d" and "-nodaemon"
    # daemon yes
    # Available sessions (first one is the default).
    # The current chosen session name is replaced in the login_cmd
    # above, so your login command can handle different sessions.
    # see the xinitrc.sample file shipped with slim sources
    sessions awesome,xfce4,icewm-session,wmaker,blackbox
    # Executed when pressing F11 (requires imagemagick)
    screenshot_cmd import -window root /slim.png
    # welcome message. Available variables: %host, %domain
    welcome_msg Welcome to %host
    # Session message. Prepended to the session name when pressing F1
    # session_msg Session:
    # shutdown / reboot messages
    shutdown_msg The system is halting...
    reboot_msg The system is rebooting...
    # default user, leave blank or remove this line
    # for avoid pre-loading the username.
    default_user kili
    # Focus the password field on start when default_user is set
    # Set to "yes" to enable this feature
    focus_password yes
    # Automatically login the default user (without entering
    # the password. Set to "yes" to enable this feature
    #auto_login no
    # current theme, use comma separated list to specify a set to
    # randomly choose from
    current_theme archlinux-simplyblack
    # Lock file
    lockfile /var/lock/slim.lock
    # Log file
    logfile /var/log/slim.log
    Thanks in advance!
    Edit:
    Besides a lot of other errors the problem was the systray. It was created 2 times, now login works again. I figured that out via enabling logging for awesome in the xinitrc again.
    Last edited by stubb (2013-01-08 23:20:05)

    Hi,
    I have the same kind of issue after updated slim from v1.3.4-4 to v1.3.5-1.
    see my topic  here :
    https://bbs.archlinux.org/viewtopic.php?id=156792
    Last edited by cedricl (2013-01-24 17:16:42)

Maybe you are looking for

  • Question on the topic from Project Systems

    Hi Friends, Iam creating Activities in my program for a given network using the bapi Function module " BAPI_BUS2002_ACT_CREATE_MULTI " but the bapi is throwing the following error for me in the creation of an activity "Enter a time unit, since you ha

  • Ipad crashing after ios8 update

    help ! After installing ios8 the ipad keeps crashing done the 8.0.2 update still crashing and reverting back to home screen can i get back to ios 7 when the ipad was 100% fine with no issues

  • Can you "combine" criteria for 2 or more fields on a Selection Screen?

    Good day everyone, Here's my question:  I understand that I can put fields on a Selection Screen and pre-fill them with data values.  In this particular case, I want to pre-fill a couple of hidden fields with data values that will be used as criteria

  • Hp pavilion aooo has no output signal to asus vh198t monitor

    I tried a different pc tower and it worked OK.

  • IPod freezing my computer

    Whenever I connect my iPod to the computer, anything involving my iPod freezes. iTunes will not run, and if it is running it will freeze. I cannot eject the device properly, again because it freezes my computer. Once I do unplug my iPod, I get a mess