Book a Demo

Author Topic: EA integration with CAC-enabled Subversion hangs  (Read 4675 times)

davidhunt

  • EA Novice
  • *
  • Posts: 7
  • Karma: +0/-0
    • View Profile
EA integration with CAC-enabled Subversion hangs
« on: May 26, 2010, 08:36:39 am »
EA frequently hangs when accessing a Subversion repository where access is controlled by CAC (the DoD smartcard).  I'm using Windows XP Professional Service Pack 3, EA 8.0.856, and a DoD-supplied svn client 1.6.9 with CAC support (described as: OpenSSL 0.9.8i library linked with support for the Microsoft Crypto API).

When accessing a CAC-enabled Subversion repository this svn client displays at least one dialog box that requires the user to select the certificate to use for authentication to the repository (the certificate selection dialog is always displayed, additional dialogs prompting the user to insert their CAC and enter their PIN may also be displayed).

When the svn client runs under EA the certificate selection dialog box is sometimes displayed, but other times is not displayed.  When the dialog is not displayed the svn client never returns and EA hangs.  I've confirmed that svn does not return by changing the "Subversion Exe Path" to a batch file (below) that wraps the actual svn command and logs the entry and exit.  When EA hangs I see an entry message, but not an exit message.

Code: [Select]
@echo off
echo %date% %time% svn %* >> C:\temp\svnwrap.log
"C:\Program Files\svn-win32-1.6.9\bin\svn.exe" %*
echo %date% %time% done >> C:\temp\svnwrap.log
Any suggestions?  Are there configuration changes to EA or XP that would ensure reliable display of the svn generated dialogs?

Thanks
-dh
« Last Edit: May 26, 2010, 08:36:55 am by davidhunt »

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: EA integration with CAC-enabled Subversion han
« Reply #1 on: May 27, 2010, 08:21:04 am »
Subversion integration is wholly based on command line.  If you need to interact with your system I would be looking at trying to find an scc compliant interface.  I know that one exists for svn, you may be able to use it with your cac enabled system.

davidhunt

  • EA Novice
  • *
  • Posts: 7
  • Karma: +0/-0
    • View Profile
Re: EA integration with CAC-enabled Subversion han
« Reply #2 on: May 28, 2010, 08:14:04 am »
Simon,

Thanks for the suggestion to look at an scc compliant interface.  I installed and configured the trial version of TamTam SVN SCC (http://www.daveswebsite.com/software/tamtamsvn/), but it also results in an EA hang (the symptoms are different - using svn directly the CPU utilization was near 0%, with TamTam the CPU utilization is 50% on my two core CPU).  TamTam uses the Subversion command line tool svn.exe (it requests the path during the configuration process), so a similar hang was disappointing but not surprising.

Unrelated to TamTam, I discovered a possible (but inelegant and fragile) work-around for the hangs when using the Subversion option.  If svn.exe is run from a visible cmd window the CAC related dialogs are reliably displayed, and EA appears to reliably display a cmd window when started from a script specified in the "Subversion Exe Path".  Using the pair of scripts below I was able to do several dozen subversion operations without EA hanging.  The result is ugly since the cmd windows appear and disappear for each Subversion operation.

Script entered as "Subversion Exe Path"
Code: [Select]
@echo off
type nul > C:\temp\svnout.txt
start "Subversion Processing" /wait C:\TEMP\SVNWRAP2.BAT %*
type C:\temp\svnout.txt
Supporting script (SVNWRAP2.BAT) called by first script and running is a window visible on the screen
Code: [Select]
"C:\Program Files\svn-win32-1.6.9\bin\svn.exe" %* > C:\temp\svnout.txt
exit
This workaround is fragile - saving the output to a single file is not thread-safe, the parameter processing fails if there is a trailing quote missing, and it's not clear why EA displays the cmd window reliably, but not the CAC dialogs.

I'll continue to investigate, but if you have other suggestions they would be appreciated.

Thanks
-dh

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: EA integration with CAC-enabled Subversion han
« Reply #3 on: May 28, 2010, 08:45:55 am »
I don't have any further suggestions myself.  I actually have very little to do with version control integration in EA.

If you contact Sparx Systems support directly we may be able to offer some additional suggestions.

davidhunt

  • EA Novice
  • *
  • Posts: 7
  • Karma: +0/-0
    • View Profile
Re: EA integration with CAC-enabled Subversion han
« Reply #4 on: May 29, 2010, 06:46:05 am »
Simon,

Thanks for your help.  Before I further pursue integration of EA and the DoD-supplied svn client I'm looking at non-integrated version control to understand the trade-offs of that approach.

-dh

Van Lepthien

  • EA User
  • **
  • Posts: 21
  • Karma: +0/-0
    • View Profile
Re: EA integration with CAC-enabled Subversion han
« Reply #5 on: June 30, 2010, 05:53:51 am »
I have a similar problem when one of my users has a password expiration on the system where subversion runs. As most of them never directly interface with that system, they never see password expiration warnings, which would appear if they were doing command-line svn interactions.

davidhunt

  • EA Novice
  • *
  • Posts: 7
  • Karma: +0/-0
    • View Profile
Re: EA integration with CAC-enabled Subversion han
« Reply #6 on: February 02, 2011, 03:23:19 am »
Quote
Before I further pursue integration of EA and the DoD-supplied svn client I'm looking at non-integrated version control to understand the trade-offs of that approach.
Followup:  We decided to use a manual (non-integrated) version control process.  Our process is roughly:
  • svn update
  • svn lock xmi files to be modified
  • launch EA
  • update EA using 'Batch XMI Import'
  • modify model in EA
  • EA 'Batch XMI Export' of the modified packages and exit EA
  • svn commit
The extra manual steps are not ideal, but are workable with our small number of users and low volume of updates.  Separating the EA import/export steps from the CAC-enabled svn steps avoids the integration issues (hangs) and allows easier recovery when there is failure (the typical failure now is an authentication timeout when the svn server prompts to reselect a CAC certificate during a lengthy svn commit and the user does not respond quickly).

-dh