Wednesday, February 19, 2014

Common Error in BCC Deployment

This blog highlight some of the error in BCC while pushing for deployment and while performing the deployment in BCC. Also provide some workaround and solution to resolve the issue. These are some common error while are seen while working with BCC tool by the users.

Lock Conflict
                Lock conflict is most common error which BCC user encounter while pushing the project for deployment. This is basically not the error in BCC, but a message which state that the project cannot be pushed for deployment queues as project contain some asset which are in process of deployment as part of the other project.
We can check the asset(s) which are/is the asset(s) which are/is part of the deployment as part of some other project and also get project name. We can click on the locked conflict tab in the project work flow screen as show in the screenshot attached below.
Resolution:
  • Wait till the project which contains the conflicted asset gets deployed, so the lock conflict is automatically resolved.
  • Remove the asset which is causing the lock conflict, but the change which are done in those asset will be lost, which can result in data corruption.  


Merge Conflict
                Merge conflict is the next step of the lock conflict. It caused when the asset which is part of the project is modified as part other project parallel and the other project is completed the deployment before push this project. Then will see   that project throw merge conflict and for that asset.
 We can see the assets which are causing the merge conflict for the project. We can click on the asset tab and it will show all the merge conflict at the top.
Resolution:
We can see the assets which are causing the merge conflict for the project. We can click on the asset tab and it will show all the merge conflict at the top. We can see a link saying merge conflict, click on the link which will show both the version that is the one which got deployed in the parallel project and the version which is modified as part of this existing project.


Snapshot Mismatch
         Snapshot error is caused when the agent JVM losses the snapshot and the snapshot is null for the agent.
  • This is generally caused when we cancel the deployment and not allowing it to rollback due to canceling of deployment will cause the agent lose the snapshot.
  • Agents lose the snapshot id even when we perform critical reset.


Resolution: we have to do a full deployment to restore the snapshot in the agent JVM.

Workaround: To perform a full deployment with a small set of data in BCC sound easy, but when we have large set of data, perform full deployment is time consuming task.
The workaround for resolving the snapshot error is forcing the snapshot using the DeploymentServer component in BCC dyn/admin.

  • Go to the CA Console >> overview >> (site which has error) >> project tab.
  • We will have list of projects which are completed status.
  • Copy the max snapshot ID which is the numeric at the right most columns.
  • Go to the /atg/epub/DeploymentServer in BCC dyn/admin.
  • We will have both the site. Force the snapshot by copying in the textbox and click init for the site which was showing the error.

Deployment hung in plan
                Sometime we come across a strange condition where we have pushed a project for deployment and it is in plan and also appears in the next project to be deployed. But the deployment is not getting started.

This happens in 2 scenarios
  • User has cancelled the previous running deployment (not rollback but cancelled).
  • User has halted the deployment.


Resolution:
  • If it is the case of 1st scenario the Accepting Deployments, will be false. We can see this flag in “CA Console >> Overview >> (Site staging/production)>>details”. When it is due to Accepting Deployments flag, then perform critical reset by click on “critical reset” button in “CA Console >> Overview >> (Site staging/production)>>details”. After this activity, agent JVM will loss the snapshot, please force the snapshot Id
  • If it is the case of 2nd scenario it will clear displayed, that “halted deployment” in red color in the “CA Console >> Overview >> (Site staging/production)”.When it is due to 2nd case then resume the deployment by click on “resume deployment” button in “CA Console >> Overview >> (Site staging/production)>>details”.

9 comments:

  1. Good Write up Pradeep! very detailed information which a person without the JAVA background(Like me) can also understand. :)

    ReplyDelete
  2. Thanks for sharing your knowledge....

    ReplyDelete
  3. Excellent write up!! Was just able to resolve the Hung Deployment issue.

    ReplyDelete
  4. Thanks Pradeep.. It helped to fix some issues in my project. Thanks a lot

    ReplyDelete
  5. I have many merge issues in my project. Im sure that is the only project that has asset during a time frame. Is that due to 2 is_head flag in pub schema.please help me to troubleshoot

    ReplyDelete
  6. I have many merge issues in my project. Im sure that is the only project that has asset during a time frame. Is that due to 2 is_head flag in pub schema.please help me to troubleshoot

    ReplyDelete
  7. Thank you Pradeepa.
    I am facing a different type of issue where I am unable to checkin my project in production due to violation of unique constraint DCS_CAT_CHLDCAT_P in dcs_cat_chldcat table.
    When I saw the assets tab, found many of the assets to have merge conflicts.

    Can you let me know how it can be possible to have merge conflicts in the Accept Production deployment stage, as according to the docs and above read, my project has held the lock to those assets?

    Priyanka.
    mail to: priyanka.c2501@gmail.com

    ReplyDelete
    Replies
    1. Hi Priyanka C,

      As explain before, merge conflict is happen, when the perversion number for your asset is not is_head. Basically, if your asset product P1:6 (where 6 is asset version) is created with base version 4. but while pushing for deployment it will make check that 4 is is_head version. IF not than it is merge conflict.

      As you are have mention that you project is failing the checking, when you go & check the issue, you find asset having merge conflict. It can happen in 2 scenarios.

      1. Someone have cleared avm_asset_lock table (where enter is made for locked assets) and move their project and even checked in it, even than you will be able to see the enter of the asset in table, but not made by you project's but by other project. Check the workspace Id also.

      2. If you have any custom workflow in system, do check where any of then DONT have "aqurie lock for asset task" as part of workflow. As it is one of the task as part of deployment to make a check in avm_asset_lock table and also make a entry for it's asset which as part of the project. If you have any such workflow, than a project with that workflow is be checked in before your's.

      -Pradeep Kulkarni

      Delete