Jump to content

Cant import git fast export data into Plastic


Recommended Posts

Hey guys.

So a little background. I have a subversion repo with 3 projects in it. I am planning on moving form subversion to plastic version 4. So what i have done is created a git repo out of my svn project and everything seems to be running perfectly according to git. Form there i did a fast export.

the command i used was

"git fast-export --all -C --tag-of-filtered-object=drop --signed-tags=strip > ~/repo.fe" ( this was run in the directory with the git repo)

From there i then copied the repo.fe form my linux box to my windows box ( where plastic is currently installed) and then try to import the repo into my plastic repository using the command

cm fast-import eb@localhost:8087 c:\repo.fe

after 15 mins or so i get no more logs over the command line the last couple of lines i get is.

3000 csets. 1,231 sec importing. 04 sec reading file. 593 sec uploading. 633 sec

checking in.

3100 csets. 1,285 sec importing. 04 sec reading file. 620 sec uploading. 660 sec

checking in.

3200 csets. 1,342 sec importing. 05 sec reading file. 645 sec uploading. 692 sec

checking in.

And then the command cm seems to lock up.

in the plastic.server.log file the last couple of lines are

2012-01-09 01:02:47,355 00000000-0000-0000-0000-000000000000 PCXX

INFO UpdatePerf - Checkin initial security check [0] ms

2012-01-09 01:02:47,838 00000000-0000-0000-0000-000000000000 PCXX

INFO UpdatePerf - Checkin initial security check [0] ms

2012-01-09 01:02:48,430 00000000-0000-0000-0000-000000000000 PCXX

INFO UpdatePerf - Checkin initial security check [0] ms

2012-01-09 01:02:49,129 00000000-0000-0000-0000-000000000000 PCXXI

NFO UpdatePerf - Checkin initial security check [0] ms

2012-01-09 01:02:49,516 00000000-0000-0000-0000-000000000000 PCXX

INFO UpdatePerf - Checkin initial security check [0] ms

2012-01-09 01:03:21,845 INFO Channel - The exception was caught during PlasticTcpClientConnection.ProcessMessages: System.Runtime.Remoting.RemotingException, Tcp transport error., ThId: 10

So i did some digging around to see what was the reason for this and cant seem to find one. I am not using a mysql database or anything i am using the default installation no customization of any of the files.

Please help me out with this. As i am trying to evaluate plastics for future use if possible by feburary of this year.

Also if this is needed. the current subversion repo has about 8800 revisions, with some pdf's and jars in the repo.

Link to comment
Share on other sites

Hello msanda,

can you please setup a MySQL with PlasticSCM?? It's very easy: http://www.plasticscm.com/infocenter/technical-articles/kb-how-to-configure-plastic-scm-with-mysql.aspx and for the fast-import operation it's much faster than the SQLServer CE.

Anyway, when the cm is "sleeping" can you check if the cm or plasticd process is eating CPU or Memory?

Regards,

Manu.

Link to comment
Share on other sites

Hey manu, So for reason i cant really explain here. We no longer use MySQL for anything for our project. Everything now runs on postgres, I changed the db.conf in the plastic file and added my db configuration. and its much faster in import but it still fails in import with the exact same message as stated above. the only difference is that it fails much quicker than with sqlce. Is there a big difference in using plastic with MySQL over using postgres. Also when cm is "sleeping" its using about 1-2% cpu. Then agian i have found out that when cm is actually importing the highest spike i have seen in cpu usages is about 25%

Link to comment
Share on other sites

Hi msanda!

wow! No MySQL! It seems that it's exiled from your office hehehehe

The line:

2012-01-09 01:03:21,845 INFO Channel - The exception was caught during PlasticTcpClientConnection.ProcessMessages: System.Runtime.Remoting.RemotingException, Tcp transport error., ThId: 10

Is not an error, only a info message the errors are logged as "ERROR".

Can you leave the cm process running the fast-import operation more time? In this moment we don't have an exception or something like that, so let it ends.

Link to comment
Share on other sites

ok so i have let the process cm.exe run for close to about 45 minutes. It still has not ended and i see no progress in the server log file. the last line is still

"INFO Channel - The exception was caught during PlasticTcpClientConnection.ProcessMessages: System.Runtime.Remoting.RemotingException, Tcp transport error., ThId: 10

I also connected plasticscm to the database to see if there is still a transfer going on after the error occurs, and all i am seeing is inactive threads. Thsi tells me that that after the error cm.exe probabaly closed the connection and is not trying to reestablish a new connection.

Also the import file i am trying to import is 1.4GB in size.

In regard to mysql reason we dont use mysql, Is more with the architecture of mysql. Iniitially we were heavy users of mysql but we started to reach very hard limits in mysql the biggest one being the Join limit. We contacted mysql and they have no plans on fixing this as they said it was a dsign issue so wil lnot be fixed. typically with normal applications and websites thsi wil lnot be a problem but the issue is worse when dealing with middleware programs like hiberante where you have little to no control on what they try to pull form the database. Not to mention we like to have a 'real' data base structure such as database -> schema -> tables instead of mysqls database -> tables format.

So yes we forcefully kicked Mysql out of our lives, and to tell you the truth we are having a much better time using a real open source database.

Link to comment
Share on other sites

Hi msanda!

Ok, let's do the following, generate the fast-export package again, but this time with the "--no-data" parameter.

This parameter will generate a smaller package without your code, only metadata.

Then fast-import this new package and tell me if it works, if not, send to me the package without data and I will try to reproduce the issue locally.

Please, also enable the "cm" log, please find out how inside this link: http://www.plasticscm.com/infocenter/technical-articles/kb-enabling-logging-for-plastic-scm-part-i.aspx

You will find the client log written in a cm.log.txt file.

Manu.

Link to comment
Share on other sites

Hi manu,

So from yesterday i did some research on the issue and i found out that the "info" that plastic was given me was actually a Mono Error on communication. (why that is flagged as info i dont know) So i looked through the error and realized that it seems to stop every time after "3200 csets". So i went back to my repo and made a smaller fast-export. Instead of checking out at revision 1 i checked out at revision 3578 -> head. then tried the import and it failed again but this time much faster, it now failed around "100 csets". With this in mind i then made sure to check out some where later than where plastic was having a problem, so i checked out around revision 3900 ->head and that worked flawlessly.

So with that said i went back to researched on the error and found out that it happened with older version of the mono + gtk and usually meant that the data that was trying to be sent was not found or was pointing to null so it automatically terminated. It seems others having that problem said it was resolved when they upgraded their mono tools. So what exactly did this have to do with me. After check out my git repo and checking to make sure there were no errors in it it seems that one of my branches was pointing to a null file, git did not complain about that but it looks like when doing the import to plasticscm coupled with the transmission of data to a database, plastic was not able to continue the operation even though CM.exe was still chugging along the database connection between the application and database was infact terminated thereby halting any progress.

I am going to do some more research and Run the steps you provided above ( since i will be really happy if i could migrate all of our changesets and comments to plastic).

I will post back with more information as i get through it.

Link to comment
Share on other sites

After check out my git repo and checking to make sure there were no errors in it it seems that one of my branches was pointing to a null file, git did not complain about that but it looks like when doing the import to plasticscm...

wow! how did you discover that?? It's the first time we hear about it.

It will be great if you could send us the --no-data package in order to prepare the fast-import feature against the git nulls.

Thanks!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...