pfefferf / ui5-nwabap-deployer

UI5 Deployer for SAP NetWeaver ABAP
Apache License 2.0
55 stars 18 forks source link

Object is already locked #32

Closed kozubikmichal closed 3 years ago

kozubikmichal commented 3 years ago

Hi, Im getting following error for the first upload of new BSP app:

Object R3TR WAPA ABC_DEF is already locked in request M62K000060 of user DEVELOPER

configuration:

ui5: {
    package: "ABC_DEF_UI",
    bspcontainer: "ABC_DEF",
    bspcontainer_text: "ABC App",
    calc_appindex: true,
    create_transport: true,
    transport_use_locked: true,
    transport_text: "ABC UI"
}

Any idea what could be wrong?

pfefferf commented 3 years ago

Hi,

what NW version you are using?

Can you check what response (code) you get here?

kozubikmichal commented 3 years ago

Hi,

what NW version you are using?

SAP_BASIS 784

Can you check what response (code) you get here?

For my case the correct line to look for the response was 116 https://github.com/pfefferf/ui5-nwabap-deployer/blob/b8c8b9ba8d3bd0432bffbb8acce28e66ac0c8b81/packages/ui5-nwabap-deployer-core/lib/FileStore.js#L115-L126

and the statuscode is 500:

status: 500,
  statusText: 'Internal Server Error',
  headers: {
    'content-type': 'application/xml',
    'content-length': '476',
    'sap-cache-control': '+0',
    'sap-isc-uagent': '0',
    'sap-server': 'true',
    'sap-perf-fesrec': '43580.000000',
    connection: 'close'
  },

data:

<?xml version="1.0" encoding="utf-8"?>
<exc:exception xmlns:exc="http://www.sap.com/abapxml/types/communicationframework">
<namespace id="com.sap.adt"/>
<type id="ExceptionResourceCreationFailure"/>
<message lang="EN">Object R3TR WAPA ABC_DEF is already locked in request M62K000060 of user DEVELOPER
</message>
<localizedMessage lang="EN">Object R3TR WAPA ABC_DEF is already locked in request M62K000060 of user DEVELOPER
</localizedMessage>
<properties/>
</exc:exception>
pfefferf commented 3 years ago

Ok, seems like you had the case that a BSP container was created and then removed. The BSP container is still locked in a transport. As the BSP container creation does not check on existing locks it fails. Will work on a fix to cover that case.

pfefferf commented 3 years ago

Fix for #32 published with ui5-nwabap-deployer-core@1.0.11

kozubikmichal commented 3 years ago

@pfefferf I've just deleted all requests containing this BSP app. There are still some open requests for this user but those are not relevant for BSP apps. I want to create a new request for the upload or reuse existing one with already locked bsp app object.

If I run the upload with transport_use_user_match: true, It ends with:

Warning: NWABAP UI5UPLOADER: Error: Operation Create BSP Container: Expected status code 201, actual status code 500, response body 
'<?xml version="1.0" encoding="utf-8"?><exc:exception xmlns:exc="http://www.sap.com/abapxml/types/communicationframework"><namespace id="com.sap.adt"/><type id="ExceptionResourceCreationFailure"/><message lang="EN">A dynpro popup has been opened during processing (SAPLSTRD/0353)</message><localizedMessage lang="EN">A dynpro popup has been opened during processing (SAPLSTRD/0353)</localizedMessage><properties/></exc:exception>' Use --force to continue.

After transport cleanup and removing the transport_use_user_match: true config, it seems stuck:

NWABAP UI5UPLOADER: Creation of transport request required. Number of created transport request: 
NWABAP UI5UPLOADER: Warning: the current BSP Application was already locked in M62K000071. Transport M62K000071 is used instead of .
NWABAP UI5UPLOADER: Warning: the current BSP Application was already locked in M62K000073. Transport M62K000073 is used instead of M62K000071.
NWABAP UI5UPLOADER: Warning: the current BSP Application was already locked in M62K000071. Transport M62K000071 is used instead of M62K000073.
NWABAP UI5UPLOADER: Warning: the current BSP Application was already locked in M62K000073. Transport M62K000073 is used instead of M62K000071.
NWABAP UI5UPLOADER: Warning: the current BSP Application was already locked in M62K000071. Transport M62K000071 is used instead of M62K000073.
...
kozubikmichal commented 3 years ago

If I add a console.log just before this message, I get:

NWABAP UI5UPLOADER: Creation of transport request required. Number of created transport request: 
<?xml version="1.0" encoding="utf-8"?><exc:exception xmlns:exc="http://www.sap.com/abapxml/types/communicationframework"><namespace id="com.sap.adt"/><type id="ExceptionResourceCreationFailure"/><message lang="EN">Object R3TR WAPA ABC_DEF2 is already locked in request M62K000098 of user DEVELOPER</message><localizedMessage lang="EN">Object R3TR WAPA ABC_DEF2 is already locked in request M62K000098 of user DEVELOPER</localizedMessage><properties/></exc:exception>
NWABAP UI5UPLOADER: Warning: the current BSP Application was already locked in M62K000098. Transport M62K000098 is used instead of .
<?xml version="1.0" encoding="utf-8"?><exc:exception xmlns:exc="http://www.sap.com/abapxml/types/communicationframework"><namespace id="com.sap.adt"/><type id="ExceptionResourceCreationFailure"/><message lang="EN">Object R3TR SICF ABC_DEF2 907RM5PM0WS1BRG2HAYGJYC1N is already locked in request M62K000100 of user DEVELOPER</message><localizedMessage lang="EN">Object R3TR SICF ABC_DEF2 907RM5PM0WS1BRG2HAYGJYC1N is already locked in request M62K000100 of user DEVELOPER</localizedMessage><properties/></exc:exception>
NWABAP UI5UPLOADER: Warning: the current BSP Application was already locked in M62K000100. Transport M62K000100 is used instead of M62K000098.
<?xml version="1.0" encoding="utf-8"?><exc:exception xmlns:exc="http://www.sap.com/abapxml/types/communicationframework"><namespace id="com.sap.adt"/><type id="ExceptionResourceCreationFailure"/><message lang="EN">Object R3TR WAPA ABC_DEF2 is already locked in request M62K000098 of user DEVELOPER</message><localizedMessage lang="EN">Object R3TR WAPA ABC_DEF2 is already locked in request M62K000098 of user DEVELOPER</localizedMessage><properties/></exc:exception>
NWABAP UI5UPLOADER: Warning: the current BSP Application was already locked in M62K000098. Transport M62K000098 is used instead of M62K000100.
<?xml version="1.0" encoding="utf-8"?><exc:exception xmlns:exc="http://www.sap.com/abapxml/types/communicationframework"><namespace id="com.sap.adt"/><type id="ExceptionResourceCreationFailure"/><message lang="EN">Object R3TR SICF ABC_DEF2 907RM5PM0WS1BRG2HAYGJYC1N is already locked in request M62K000100 of user DEVELOPER</message><localizedMessage lang="EN">Object R3TR SICF ABC_DEF2 907RM5PM0WS1BRG2HAYGJYC1N is already locked in request M62K000100 of user DEVELOPER</localizedMessage><properties/></exc:exception>
NWABAP UI5UPLOADER: Warning: the current BSP Application was already locked in M62K000100. Transport M62K000100 is used instead of M62K000098.
<?xml version="1.0" encoding="utf-8"?><exc:exception xmlns:exc="http://www.sap.com/abapxml/types/communicationframework"><namespace id="com.sap.adt"/><type id="ExceptionResourceCreationFailure"/><message lang="EN">Object R3TR WAPA ABC_DEF2 is already locked in request M62K000098 of user DEVELOPER</message><localizedMessage lang="EN">Object R3TR WAPA ABC_DEF2 is already locked in request M62K000098 of user DEVELOPER</localizedMessage><properties/></exc:exception>
NWABAP UI5UPLOADER: Warning: the current BSP Application was already locked in M62K000098. Transport M62K000098 is used instead of M62K000100.
pfefferf commented 3 years ago

What is part of transports M62K000098 and M62K000100? Looks crazy that it says one time it is locked in the first transport and than in the other. When is that message raised, when the BSP container needs to be created or when the files are synced?

kozubikmichal commented 3 years ago

Both have description "Generated Request for Change Recording" 98 Contains BSP App 100 Contains ICF Service

Edit: its raided during container creation

pfefferf commented 3 years ago

And the BSP container to be created is not part of both transports, but the ICF service generated for the container (you probably removed before)?

kozubikmichal commented 3 years ago

Both BSP container and ICF service are new objects (with modified name so no "old" instances should exist). It seems there are automatically create chenge requests for the BSP and ICF separately and then it tries to create a new one (defined in ui5 config) with those locked objects. May it be some wrong setup of our sap system so it shouldnt create separate change requests for each of those objects?