SEQanswers

Go Back   SEQanswers > Applications Forums > De novo discovery



Similar Threads
Thread Thread Starter Forum Replies Last Post
soapsnp segmentation fault - help! jtjli Bioinformatics 6 02-29-2016 09:54 AM
gffread segmentation fault gokhulkrishnakilaru Bioinformatics 10 01-28-2013 11:28 AM
Segmentation fault in sift4.03 nkwuji Bioinformatics 2 12-20-2011 11:35 PM
see segmentation fault in soapsnp guoweiguowei@gmail.com Bioinformatics 3 04-21-2010 10:15 PM
MAQ - Segmentation fault dukevn Bioinformatics 1 04-30-2009 01:07 PM

Reply
 
Thread Tools
Old 11-19-2012, 11:16 PM   #1
zszong@hotmail.com
Member
 
Location: Burnaby

Join Date: Sep 2012
Posts: 17
Default Velvet segmentation fault

Hi All,

I am trying to run velveth on a cluster to assemble a bacterial genome with illumina data (50bp short reads) and I kept getting segmentation fault error. I tried the test data included in the distribution package, the same error message. What does this tell me? I run Ubuntu 32bit and ssh to a cluster. The velvet is run on the cluster as well.

Can an expert help me out here? thanks a bunch!

Stuart
zszong@hotmail.com is offline   Reply With Quote
Old 11-20-2012, 10:03 AM   #2
winsettz
Member
 
Location: US

Join Date: Sep 2012
Posts: 91
Default

What's the operating system on the cluster? If I read your post right, you're using a 32-bit OS and running velveth jobs (interactive? Batch?) on a cluster.

Did you compile on your own machine or on the cluster? Additionally, did you try deleting coredumps, make debug then use gdb and run a backtrace?
winsettz is offline   Reply With Quote
Old 11-20-2012, 10:51 AM   #3
zszong@hotmail.com
Member
 
Location: Burnaby

Join Date: Sep 2012
Posts: 17
Default

Hi Winsettz,

the cluster is x86-64. so it is a 64 OS. i downloaded and compiled velvet onthe cluster. I just ran velveth command following the manual on the cluster.

I am not familliar with deleting coredumps, debugging, using gdb and running a backtrace. Could you give more details how these might help with the problem?

thanks
zszong@hotmail.com is offline   Reply With Quote
Old 11-20-2012, 12:04 PM   #4
winsettz
Member
 
Location: US

Join Date: Sep 2012
Posts: 91
Default

From http://www.ebi.ac.uk/~zerbino/velvet/Manual.pdf

Reporting bugs: We are very grateful to all the people who send us bugs.
However, to speed up the process and avoid useless delays, please:
1. ensure that you have the very last version of Velvet, to the last digit, as
displayed on the website.
2. attach to your e-mail the Log file from within the Velvet directory.
3. if the program crashed and created a core dump file could you please:
(a) destroy the core.* file
(b) recompile Velvet with the instruction “make debug”
(c) re-run Velvet and let it crash (therefore creating a new core file)
(d) launch the GNU debugger with the instructions:
> gdb ./velvetg core.*
(e) within gdb, request a backtrace:
(gdb) bt full
(f) send the listing with the entire gdb session.

What commands are you using for velveth?
winsettz is offline   Reply With Quote
Old 11-20-2012, 08:08 PM   #5
zszong@hotmail.com
Member
 
Location: Burnaby

Join Date: Sep 2012
Posts: 17
Default

Hi Winsettz,

Thanks again! I ran "./velveth sillyDirectory 21 -shortPaired data/test_reads.fa" which is copied from the Manual to test. I realized that the test_reads.fa didn't look like paired read data, so tried file type as -short. the same error message. Please refer to the following messages.

The version I downloaded is the latest.

Thanks! STuart

zzong@bugaboo:~/bin/velvet_1.2.08> ./velveth sillyDirectory 21 -shortPaired data/test_reads.fa
Segmentation fault
zzong@bugaboo:~/bin/velvet_1.2.08> cd data/sillyDirectory/
zzong@bugaboo:~/bin/velvet_1.2.08/data/sillyDirectory> ls -hl
total 4.0K
-rw-r----- 1 zzong zzong 366 Nov 19 22:55 Log
-rw-r----- 1 zzong zzong 0 Nov 19 22:55 Sequences
zzong@bugaboo:~/bin/velvet_1.2.08/data/sillyDirectory> cat Log
Mon Nov 19 22:55:21 2012
../velveth sillyDirectory 21 -shortPaired data/test_reads.fa
Version 1.2.07
Copyright 2007, 2008 Daniel Zerbino (zerbino@ebi.ac.uk)
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compilation settings:
CATEGORIES = 2
MAXKMERLENGTH = 31
zszong@hotmail.com is offline   Reply With Quote
Old 11-21-2012, 06:46 AM   #6
winsettz
Member
 
Location: US

Join Date: Sep 2012
Posts: 91
Default

Can you type uname -r on the cluster and gcc -v on the cluster? I've had interesting issues compiling on centos5, velvet 1.2.08 works on centos 6.2.

Did you try compiling for debug?

--------------------
./velveth sillyDirectory 21 -shortPaired data/test_reads.fa
[0.000001] Reading FastA file data/test_reads.fa;
[0.267302] 142858 sequences found
[0.267316] Done
[0.422207] Reading read set file sillyDirectory/Sequences;
[0.512422] 142858 sequences found
[0.682139] Done
[0.682160] 142858 sequences in total.
[0.684579] Writing into roadmap file sillyDirectory/Roadmaps...
[0.740337] Inputting sequences...
[0.741823] Inputting sequence 0 / 142858
[1.041803] === Sequences loaded in 0.313717 s
[1.098792] Done inputting sequences
[1.098814] Destroying splay table
[1.103906] Splay table destroyed

--------
uname -r
2.6.32-220.13.1.el6.x86_64

---------------
gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)
winsettz is offline   Reply With Quote
Old 11-21-2012, 04:43 PM   #7
zszong@hotmail.com
Member
 
Location: Burnaby

Join Date: Sep 2012
Posts: 17
Default

Hi Winsettz,

Tried recompile and debug, it doesn't seem to help. Could you take a look of below ? Thanks for your help.

Stuart


bugaboo:~/bin/velvet_1.2.08> make debug
rm obj/*.o obj/dbg/*.o
rm: cannot remove `obj/dbg/*.o': No such file or directory
make: [cleanobj] Error 1 (ignored)
mkdir -p obj/dbg
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/tightString.c -o obj/dbg/tightString.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/run.c -o obj/dbg/run.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/splay.c -o obj/dbg/splay.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/splayTable.c -o obj/dbg/splayTable.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/graph.c -o obj/dbg/graph.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/run2.c -o obj/dbg/run2.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/fibHeap.c -o obj/dbg/fibHeap.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/fib.c -o obj/dbg/fib.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/concatenatedGraph.c -o obj/dbg/concatenatedGraph.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/passageMarker.c -o obj/dbg/passageMarker.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/graphStats.c -o obj/dbg/graphStats.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/correctedGraph.c -o obj/dbg/correctedGraph.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/dfib.c -o obj/dbg/dfib.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/dfibHeap.c -o obj/dbg/dfibHeap.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/recycleBin.c -o obj/dbg/recycleBin.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/readSet.c -o obj/dbg/readSet.o
src/readSet.c: In function ‘readFastXFile’:
src/readSet.c:641: warning: assignment from incompatible pointer type
src/readSet.c: In function ‘readFastXPair’:
src/readSet.c:680: warning: assignment from incompatible pointer type
src/readSet.c:681: warning: assignment from incompatible pointer type
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/binarySequences.c -o obj/dbg/binarySequences.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/shortReadPairs.c -o obj/dbg/shortReadPairs.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/locallyCorrectedGraph.c -o obj/dbg/locallyCorrectedGraph.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/graphReConstruction.c -o obj/dbg/graphReConstruction.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/roadMap.c -o obj/dbg/roadMap.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/preGraph.c -o obj/dbg/preGraph.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/preGraphConstruction.c -o obj/dbg/preGraphConstruction.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/concatenatedPreGraph.c -o obj/dbg/concatenatedPreGraph.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/readCoherentGraph.c -o obj/dbg/readCoherentGraph.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/utility.c -o obj/dbg/utility.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/kmer.c -o obj/dbg/kmer.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/scaffold.c -o obj/dbg/scaffold.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/kmerOccurenceTable.c -o obj/dbg/kmerOccurenceTable.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/allocArray.c -o obj/dbg/allocArray.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/autoOpen.c -o obj/dbg/autoOpen.o
gcc -Wall -g -o velveth obj/dbg/tightString.o obj/dbg/run.o obj/dbg/recycleBin.o obj/dbg/splay.o obj/dbg/splayTable.o obj/dbg/readSet.o obj/dbg/binarySequences.o obj/dbg/utility.o obj/dbg/kmer.o obj/dbg/kmerOccurenceTable.o obj/dbg/allocArray.o obj/dbg/autoOpen.o -lz -lm
gcc -Wall -g -o velvetg obj/dbg/tightString.o obj/dbg/graph.o obj/dbg/run2.o obj/dbg/fibHeap.o obj/dbg/fib.o obj/dbg/concatenatedGraph.o obj/dbg/passageMarker.o obj/dbg/graphStats.o obj/dbg/correctedGraph.o obj/dbg/dfib.o obj/dbg/dfibHeap.o obj/dbg/recycleBin.o obj/dbg/readSet.o obj/dbg/binarySequences.o obj/dbg/shortReadPairs.o obj/dbg/scaffold.o obj/dbg/locallyCorrectedGraph.o obj/dbg/graphReConstruction.o obj/dbg/roadMap.o obj/dbg/preGraph.o obj/dbg/preGraphConstruction.o obj/dbg/concatenatedPreGraph.o obj/dbg/readCoherentGraph.o obj/dbg/utility.o obj/dbg/kmer.o obj/dbg/kmerOccurenceTable.o obj/dbg/allocArray.o obj/dbg/autoOpen.o -lz -lm


zzong@bugaboo:~/bin/velvet_1.2.08> gdb ./velvetg core.*
GNU gdb (GDB) 7.5
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/zzong/bin/velvet_1.2.08/velvetg...done.
/home/zzong/bin/velvet_1.2.08/core.*: No such file or directory.
(gdb) bt full
No stack.
(gdb)
zszong@hotmail.com is offline   Reply With Quote
Old 01-08-2013, 06:58 AM   #8
winsettz
Member
 
Location: US

Join Date: Sep 2012
Posts: 91
Default

Quote:
Originally Posted by zszong@hotmail.com View Post
Hi Winsettz,

Tried recompile and debug, it doesn't seem to help. Could you take a look of below ? Thanks for your help.

Stuart


bugaboo:~/bin/velvet_1.2.08> make debug
rm obj/*.o obj/dbg/*.o
rm: cannot remove `obj/dbg/*.o': No such file or directory
make: [cleanobj] Error 1 (ignored)
mkdir -p obj/dbg
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/tightString.c -o obj/dbg/tightString.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/run.c -o obj/dbg/run.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/splay.c -o obj/dbg/splay.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/splayTable.c -o obj/dbg/splayTable.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/graph.c -o obj/dbg/graph.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/run2.c -o obj/dbg/run2.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/fibHeap.c -o obj/dbg/fibHeap.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/fib.c -o obj/dbg/fib.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/concatenatedGraph.c -o obj/dbg/concatenatedGraph.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/passageMarker.c -o obj/dbg/passageMarker.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/graphStats.c -o obj/dbg/graphStats.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/correctedGraph.c -o obj/dbg/correctedGraph.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/dfib.c -o obj/dbg/dfib.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/dfibHeap.c -o obj/dbg/dfibHeap.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/recycleBin.c -o obj/dbg/recycleBin.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/readSet.c -o obj/dbg/readSet.o
src/readSet.c: In function ‘readFastXFile’:
src/readSet.c:641: warning: assignment from incompatible pointer type
src/readSet.c: In function ‘readFastXPair’:
src/readSet.c:680: warning: assignment from incompatible pointer type
src/readSet.c:681: warning: assignment from incompatible pointer type
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/binarySequences.c -o obj/dbg/binarySequences.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/shortReadPairs.c -o obj/dbg/shortReadPairs.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/locallyCorrectedGraph.c -o obj/dbg/locallyCorrectedGraph.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/graphReConstruction.c -o obj/dbg/graphReConstruction.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/roadMap.c -o obj/dbg/roadMap.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/preGraph.c -o obj/dbg/preGraph.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/preGraphConstruction.c -o obj/dbg/preGraphConstruction.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/concatenatedPreGraph.c -o obj/dbg/concatenatedPreGraph.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/readCoherentGraph.c -o obj/dbg/readCoherentGraph.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/utility.c -o obj/dbg/utility.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/kmer.c -o obj/dbg/kmer.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/scaffold.c -o obj/dbg/scaffold.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/kmerOccurenceTable.c -o obj/dbg/kmerOccurenceTable.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/allocArray.c -o obj/dbg/allocArray.o
gcc -Wall -g -D MAXKMERLENGTH=31 -D CATEGORIES=2 -D DEBUG -c src/autoOpen.c -o obj/dbg/autoOpen.o
gcc -Wall -g -o velveth obj/dbg/tightString.o obj/dbg/run.o obj/dbg/recycleBin.o obj/dbg/splay.o obj/dbg/splayTable.o obj/dbg/readSet.o obj/dbg/binarySequences.o obj/dbg/utility.o obj/dbg/kmer.o obj/dbg/kmerOccurenceTable.o obj/dbg/allocArray.o obj/dbg/autoOpen.o -lz -lm
gcc -Wall -g -o velvetg obj/dbg/tightString.o obj/dbg/graph.o obj/dbg/run2.o obj/dbg/fibHeap.o obj/dbg/fib.o obj/dbg/concatenatedGraph.o obj/dbg/passageMarker.o obj/dbg/graphStats.o obj/dbg/correctedGraph.o obj/dbg/dfib.o obj/dbg/dfibHeap.o obj/dbg/recycleBin.o obj/dbg/readSet.o obj/dbg/binarySequences.o obj/dbg/shortReadPairs.o obj/dbg/scaffold.o obj/dbg/locallyCorrectedGraph.o obj/dbg/graphReConstruction.o obj/dbg/roadMap.o obj/dbg/preGraph.o obj/dbg/preGraphConstruction.o obj/dbg/concatenatedPreGraph.o obj/dbg/readCoherentGraph.o obj/dbg/utility.o obj/dbg/kmer.o obj/dbg/kmerOccurenceTable.o obj/dbg/allocArray.o obj/dbg/autoOpen.o -lz -lm


zzong@bugaboo:~/bin/velvet_1.2.08> gdb ./velvetg core.*
GNU gdb (GDB) 7.5
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/zzong/bin/velvet_1.2.08/velvetg...done.
/home/zzong/bin/velvet_1.2.08/core.*: No such file or directory.
(gdb) bt full
No stack.
(gdb)
Woah, this is what happens when I stop going to seqanswers.

You run gdb in the same directory as the core dump. Don't know if you're still here...
winsettz is offline   Reply With Quote
Old 01-14-2013, 09:38 PM   #9
tman
Junior Member
 
Location: Toronto

Join Date: Jul 2010
Posts: 3
Default

Hi, I recently had the same problem using v 1.2.08.

Requesting the custom zlib functionality when running make fixed it:

make 'BUNDLEDZLIB=1'
tman is offline   Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT -8. The time now is 09:26 AM.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Single Sign On provided by vBSSO