It's all about the answers!

Ask a question

[closed] CC-RTC Synchronizer: missing OID in VOB


Simon Eickel (1.1k75457) | asked May 03 '13, 9:06 a.m.
closed Sep 16 '13, 1:13 a.m.
Hi friends,

one more problem facing with the synchronizer.
I addd one more component to my working synchronization which should be synchronized from RTC to CC.
The directory in CC was "moved" by project decision (so the old path was not correct and it should be synchronized to a different location).
The old dir was removed (rmelem) and the new one was created containing the attribute for subvob components.

As I knew the oid for the old dir was still inside the RTC database as a clone - so I deleted all clones for the component where the dir was changed.

My problem is now that the synchronizer is still missind the element oid within the VOB.
Even after removing the component from the sync the synchronizer is checking for the element oid and is throwing errors.

I checked the whole database for a clone containing the oid (checked for each component itself and after this checked for the repository wontaining no special component name) ... all search was not successfull. I don't find a link to this oid and for that I don't know where he is remembering this oid.

Synchronizer is still 4.0

build.log:


stacktrace:


Any idea where I could search for this information?

Greetings,
Simon

Comments
Simon Eickel commented May 03 '13, 9:21 a.m.

after update to 4.0.1 the problem still exists

The question has been closed for the following reason: "The question is answered, right answer was accepted" by eickel Sep 16 '13, 1:13 a.m.

Accepted answer


permanent link
Masabumi koinuma (46115) | answered May 03 '13, 9:39 a.m.
JAZZ DEVELOPER
Hi Simon,

Have you tried to remove the synchronization roots and add them back?
It would probably be sufficient to remove just the roots at/under the component you're having trouble with, and add them back.

Simon Eickel selected this answer as the correct answer

Comments
Simon Eickel commented May 03 '13, 9:43 a.m.

Hi Masabumi,
what do you mean with removing and adding the roots?
The folder /component which is causing the problem is not inside the syncer anymore. The folder in CC still exists and the Component in RTC, too.

But the synchronization stream has this component / CC folder not to synchronize.

Greetings,
Simon


Masabumi koinuma commented May 03 '13, 9:53 a.m.
JAZZ DEVELOPER

Well, the stack trace indicates the synchronizer is having trouble with the active synchronization roots of the stream. If you confirmed you already removed the component's folders from the synchronization stream, I wonder if you happen to remove clone links ( ccc clone -X -c ) of other components inadvertently.

One thing you can check is to run cleartool describe of the oid, and see what folder/component is troubling the synchronizer.


Masabumi koinuma commented May 03 '13, 10:02 a.m.
JAZZ DEVELOPER

Oops, cleartool desc oid, is the command that is failing in syc. Pls ignore the last line of my comment above!


Simon Eickel commented May 03 '13, 10:05 a.m.

Hi Masabumi,
maybe I have written a bit ambiguous...
I removed the component from the "Select Files and Folders" wizard , not from the synchronization stream itself.

Now I removed this component from the stream itself and still have this problem.
Interesting thing is the new message in the build.log and the stack trace indicating that maybe there is a problem with a backslash... but this is not possible I think because the data was created with windows and there you cannot use backslashes within path names ...

stacktrace:


I did not remove clones from other components ... does this affect the other synchronization of components? What I read is that the files will still reside on their place ... does anything work when I recreate the clones during the next synchronization? Is it possible to remove all clones within the command (using it without -c <component>)?


Simon Eickel commented May 03 '13, 10:10 a.m.

yes - because when I do this he sais me that this oid does not exist ;) same information as the synchronizer gives me. This I checked first :)


Masabumi koinuma commented May 03 '13, 10:34 a.m.
JAZZ DEVELOPER

The error message about backslash probably has nothing to do with your case.

I have another theory based on your recent comments - I suspect you removed the element (cleartool rmelem) before you remove the synchronization root from "Select Files and Folders" wizard, correct?
If that is the case, the synchronized stream probably still have reference to the rmelem'd objects because the wizard cannot even look up the oid for the folder to delete ;<

I can't think of other quick solution than to create a synchronized stream fro scratch and remove the current one in that case. Just a friendly reminder, but we do not supportĀ  rmelem and rmver with ClearCase synchronizer.

https://pic.dhe.ibm.com/infocenter/clmhelp/v4r0m1/topic/com.ibm.team.connector.scm.cc.doc/topics/c_working_cc_guidelines.html

Oh, one possible workaround is to remove and add back an unrelated roots from the wizard. It may clean up the list of roots and related metadata from the synchronized stream. If it does not work, it would be best to create a new sync. stream.




Simon Eickel commented May 03 '13, 3:33 p.m.

new sync stream means that I have to take a new name or can I name the new one like the old one?

what do you mean with "add and unrelated root from the wizard"?


Masabumi koinuma commented May 03 '13, 5:58 p.m.
JAZZ DEVELOPER

Name of the new stream would not be a problem. You can rename the old one and create new one, or create new one first and you can change stream names afterwards, and the synchronizer continues to work fine.


1
Masabumi koinuma commented May 03 '13, 6:01 p.m.
JAZZ DEVELOPER

What I meant by remove and add back unrelated root from the wizard is:
a) open the "Select Files and Folders" wizard, display existing synchronization roots
b) select one of them and remove it ( it could be any. )
c) When you finish the wizard, it will trigger a new synchronization automatically.
d) If the synchronization succeeds, it means you probably succeeded the cleanup of the synchronization roots and related metadata. You can add back the synchronization root that was removed by b), and next synchronization would work fine.
e) If the sync. still fails with the same error, you probably don't have a chance to recover the existing synchronized stream. Then, the solution is to create a new synchronized stream with the same configuration as previous ( same CC branch type, label type ). Since you're mostly interested in the sync. from RTC to CC, it'd be handy to make a snapshot with the current sync. stream in RTC, and specify the snapshot in the last page of synchronized stream creation wizard.


Simon Eickel commented May 03 '13, 6:47 p.m.

Hi Masabumi,
thanks for this explanation - I will check it and hope everything's fine. Otherwise I will try to recreate the sync stream with the same config ;)

One more question regarding the rmelem.
The problem was that a simple reconfigure the component inside the syncer did not work to the new dir. After this we did a rmname on the folder within CC - the effect was just that the syncer wanted to sync to the old dir in it's old place (not there) --> error.
After this (we had removed all clones before) we did a rmelem on the folder ...

What is the recommended progress for this? How to change the component to a different folder (same name?) if I cannot use an rmelem or rmname or rmver?


Masabumi koinuma commented May 03 '13, 7:15 p.m.
JAZZ DEVELOPER

Hi Simon, can you elaborate more about the scenario?
I remember you are using baseCC sub-VOB component, and when you said a simple reconfigure, what were you trying to accomplish? Were you trying to sync. out an existing RTC component to a new folder in ClearCase?

When you have an RTC component and a CC sub-VOB component in sync, and would like to swap only CC-side with a new folder, the recommended step would be like:
- remove any folders under the component from the synchronization root list usingĀ  the "Select Files and Folders" wizard ( if you have multiple synchronized stream, remove the component from all of them )
- on the clearcase-side, rmname the component root folder
- run ccc clone -X -component <component>
- add back the RTC component's synchronization roots to the sync stream

I'm also curious about what motivates you to consider the reconfiguration because we normally do not recommend this type of reconfiguration to anyone ;)


Simon Eickel commented May 04 '13, 2:40 a.m.

Hi Masabumi,
thanks for explanation. This was exactly the scenario.
Yes, it was very curious and very unexpected - reconfiguration was not planned ;)
The predefined scenario is the following:
we do have a team which has a root folder inside the component named the same like the component. This is because when they load the component within VS they want to have a folder named like the component without using the option "load component as root folder" ;)
And on this configuration they have build scripts.



Simon Eickel commented May 04 '13, 2:40 a.m.

Now they need to sync all data of RTC into CC for other teams using it within CC.
But in CC they need the same folder structure as in RTC because of the build scripts. This is with the synchronizer by default not possible (because component is one folder and the top level folder itself is a folder).
This is why we have a subfolder "DO_NOT_USE" where we sync the RTC stuff and at the same level next to the "DO_NOT_USE" folder we have the folder structure we need created as symlinks.
The problem now was, that after applying the subvob attribute to the correct folder within the "DO_NO_USE" folder and starting the sync, the syncer did not sync the stuff into the "DO_NOT_USE" folder but he "changed" the symlink into a real directory and synced into it... Now we had two folder with the same attribute but the syncer took everytime the folder one level too high...

That's why we had to reconfigure ...


Simon Eickel commented May 04 '13, 2:59 a.m.

Hi Masabumi,
after removing all Components from the sctream and syncing - syncer was successfull.
Now I added the component I tried to sync after reconfiguration and started synchronization and now he created the directory next to the "DO_NOT_USE" folder again.
So I'm back at the state where I was before I created this entry at jazz.net.
Now I did what you explained me -
- removed the component from the sync list
- did an rmname on the folder on CC side
- run ccc clones -X -c <comp> on the component
- added it back to the stream.

He still creates this hated directory ... and does not take the one I've marked with the attribute inside the "DO_NOT_USE" folder... :(


Simon Eickel commented May 04 '13, 3:13 a.m.

even after creating a new sync stream he creates a directory instead of taking the one which is marked to...


Simon Eickel commented May 04 '13, 4:44 a.m.

Hi Masabumi,
I created a new entry for this discussion as this here is clarified :)
This is the new one: cc-rtc-synchronization-creates-a-wrong-directory

showing 5 of 16 show 11 more comments