Jump to content

Multiple repositories - xlink- AssertNull - a null object found


JeanDeSpaey

Recommended Posts

Hi,

I encounter an assertNull error in Plastic 4.0 when checking in files located in different xlinked repositories. After the assert the plastic database is

inconsistent (rollback does not rollback completely to the previous state). One needs to manually modify the xlink (setting it to the correct changeset) to

be able to continue. What follows is the configuration of the environment.

Repository server is running on a Linux machine (mono environment).

Client is a Windows 7 environment.

Version of the Plastic 4 software = 239.2

Workspace & repository:

A workspace "Workspace_MyProject" is created with a repository called "myproject".

In this workspace a folder "MyProject" and a folder "lib" are created (and checked in).

In the "MyProject" folder a "src" repository is xlinked using the following commnand:

cm xlink -w src / cs:0@myproject_src@server:8087

In the "lib" folder a "MyProject" folder is xlinked using the following command:

cm xlink -w MyProject / cs:0@myproject_lib@server:8087

In the "src" folder a Visual Studio solution is created. One of the projects in this solution copies a library (.NET assembly) and a confg file in the "lib/MyProject"

folder (The idea is that this repository can be used by other projects that require the library).

The library and config file are placed under source control in the MyProject workspace.

The build of the Visual Studio solution results in 2 files that are updated in the "src" repo (c# source files), and 2 files updated in the "lib/MyProject" folder (a dll and a config file).

When asked for the "pending changes" Plastic SCM reports that 4 files need to be checked in (which is correct).

When you checkin the 4 files together then a "Assert null" error occurs (with an incomplete rollback)

When you checkin the 2 files that changed on the "src" folder followed by a checkin of the two files in the "lib/MyProject" folder then everything

works as expected.

It is as if the fact that two xlinked repositories are updated at the same time is problematic.

Does anyone experienced the same or similar problems?

Is there a fix for this?

Link to comment
Share on other sites

Hi ,

can you please post us here a screenshot of your pending changes view at the time you are trying to commit the changes?

can you also try the ci using the command line? Just issue the following command on the workspace root directory:

"cm ci --stack"

Link to comment
Share on other sites

  • 2 weeks later...

Hi manu

Sorry for the delay.

I have checked out the files (using the Plastic client) and then issued the cm ci --stack command as you requested.

(the content of the files was not changed between the checkout and executing the command).

Attached is a screen capture of the command window.

Hope this helps you pinpoint the problem

Regards,

Jean

post-95-0-18921000-1330939398_thumb.png

Link to comment
Share on other sites

Hi Jean,

I can´t see the AssertNull error on the ScreenShot :(

But, I have to tell you that the ci, when you are working with Xlinks, will be atomic as the "no-xlinked" working mode is. It will be included on the next public release.

Link to comment
Share on other sites

Hi,

The difference between the error situation and the working situation is that in the case of error situation the files are not checked out using a command or using visual studio checking out the files. The files are created as follows :

In a visual studio project a pre build command is used to create a proxy class (c# source file and config file) from a web service. These files are located in the src folder of the workspace.

The project build compiles the c# file into an assembly (dll) in a bin folder not under source control.

A post build command then copies the dll and the config file to the xlinked folder ( in the lobs folder).

When you checkin the files that were altered (c# file an config file in the src folder + dll and config file in the libs folder ) together the assert null error occurs. If you first check in the files in the src folder and then those in the lib folder then there is no error.

If you checkout the files from the plastic ui and check them in together no error occurs.

Hope this helps

Link to comment
Share on other sites

Hi,

This morning I installed version 239.16 and I did the test again. Unfortunately the problem is still present.

I executed the command cm -ci --stack as you suggested (screen capture as attachement).

I also attached screen captures of:

- Pending changes after the build in Visual Studio

- The checking operation that fails + the assert null error (file "Checkin_operation_and_assert_null.png)

- The items view after the error condition

- The branch explorer on the mounted "lib\WeGovPartner" repository (the working changeset is no longer consistent!!!)

Regards,

Jean

post-95-0-87323300-1331569151_thumb.png

post-95-0-64951900-1331569778_thumb.png

post-95-0-46272300-1331569803_thumb.png

post-95-0-93382500-1331569860_thumb.png

post-95-0-64325200-1331569896_thumb.png

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Hi manu,

We installed 239.19 (both on repository server (mono, linux) and on client (win 7)) and tested the checkin operation again.

The client user interface now shows the following message (see attached screen capture).

I also attached the serverlog captured at the moment of the error (serverlog.txt).

Hope this can help you further

Regards,

Jean

post-95-0-48617700-1333094996_thumb.png

serverlog.txt

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...