You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bookkeeper.apache.org by "Sijie Guo (Created) (JIRA)" <ji...@apache.org> on 2011/12/15 08:44:30 UTC

[jira] [Created] (BOOKKEEPER-143) Add SSL support for hedwig cpp client

Add SSL support for hedwig cpp client
-------------------------------------

                 Key: BOOKKEEPER-143
                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-143
             Project: Bookkeeper
          Issue Type: Improvement
          Components: bookkeeper-client
    Affects Versions: 4.0.0
            Reporter: Sijie Guo


Currently Hedwig CPP client doesn't support SSL. 

Example for boost::asio using SSL:

http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/ssl/client.cpp


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (BOOKKEEPER-143) Add SSL support for hedwig cpp client

Posted by "Ivan Kelly (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-143?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ivan Kelly updated BOOKKEEPER-143:
----------------------------------

    Fix Version/s: 4.1.0
    
> Add SSL support for hedwig cpp client
> -------------------------------------
>
>                 Key: BOOKKEEPER-143
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-143
>             Project: Bookkeeper
>          Issue Type: Improvement
>          Components: bookkeeper-client
>    Affects Versions: 4.0.0
>            Reporter: Sijie Guo
>             Fix For: 4.1.0
>
>
> Currently Hedwig CPP client doesn't support SSL. 
> Example for boost::asio using SSL:
> http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/ssl/client.cpp

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (BOOKKEEPER-143) Add SSL support for hedwig cpp client

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-143?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13467047#comment-13467047 ] 

Hudson commented on BOOKKEEPER-143:
-----------------------------------

Integrated in bookkeeper-trunk #734 (See [https://builds.apache.org/job/bookkeeper-trunk/734/])
    BOOKKEEPER-143: Add SSL support for hedwig cpp client (sijie via ivank) (Revision 1392319)

     Result = UNSTABLE
ivank : 
Files : 
* /zookeeper/bookkeeper/trunk/CHANGES.txt
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/Makefile.am
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/configure.ac
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/inc/hedwig/client.h
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/lib/channel.cpp
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/lib/channel.h
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/lib/client.cpp
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/lib/clientimpl.cpp
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/lib/clientimpl.h
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/lib/eventdispatcher.cpp
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/lib/eventdispatcher.h
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/lib/subscriberimpl.cpp
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/lib/subscriberimpl.h
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/lib/util.cpp
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/lib/util.h
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/scripts/log4cxx.conf
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/scripts/server-control.sh
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/scripts/tester.sh
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/test/Makefile.am
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/test/main.cpp
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/test/messageboundtest.cpp
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/test/messagefiltertest.cpp
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/test/pubsubtest.cpp
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/test/util.h

                
> Add SSL support for hedwig cpp client
> -------------------------------------
>
>                 Key: BOOKKEEPER-143
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-143
>             Project: Bookkeeper
>          Issue Type: Improvement
>          Components: bookkeeper-client
>    Affects Versions: 4.0.0
>            Reporter: Sijie Guo
>            Assignee: Sijie Guo
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-143.diff, BOOKKEEPER-143.diff, BOOKKEEPER-143.diff, BOOKKEEPER-143.patch, ssl.segfault
>
>
> Currently Hedwig CPP client doesn't support SSL. 
> Example for boost::asio using SSL:
> http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/ssl/client.cpp

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (BOOKKEEPER-143) Add SSL support for hedwig cpp client

Posted by "Ivan Kelly (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-143?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ivan Kelly updated BOOKKEEPER-143:
----------------------------------

    Attachment: ssl.segfault

Also, unittests segfault in testRandomDelivery.
I've attached the stacktrace from gdb.
                
> Add SSL support for hedwig cpp client
> -------------------------------------
>
>                 Key: BOOKKEEPER-143
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-143
>             Project: Bookkeeper
>          Issue Type: Improvement
>          Components: bookkeeper-client
>    Affects Versions: 4.0.0
>            Reporter: Sijie Guo
>            Assignee: Sijie Guo
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-143.diff, BOOKKEEPER-143.diff, BOOKKEEPER-143.patch, ssl.segfault
>
>
> Currently Hedwig CPP client doesn't support SSL. 
> Example for boost::asio using SSL:
> http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/ssl/client.cpp

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (BOOKKEEPER-143) Add SSL support for hedwig cpp client

Posted by "Sijie Guo (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-143?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sijie Guo updated BOOKKEEPER-143:
---------------------------------

    Attachment: BOOKKEEPER-143.diff

update a new patch just rebased to latest patch of BOOKKEEPER-252.
                
> Add SSL support for hedwig cpp client
> -------------------------------------
>
>                 Key: BOOKKEEPER-143
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-143
>             Project: Bookkeeper
>          Issue Type: Improvement
>          Components: bookkeeper-client
>    Affects Versions: 4.0.0
>            Reporter: Sijie Guo
>            Assignee: Sijie Guo
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-143.diff, BOOKKEEPER-143.patch
>
>
> Currently Hedwig CPP client doesn't support SSL. 
> Example for boost::asio using SSL:
> http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/ssl/client.cpp

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (BOOKKEEPER-143) Add SSL support for hedwig cpp client

Posted by "Sijie Guo (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-143?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13459661#comment-13459661 ] 

Sijie Guo commented on BOOKKEEPER-143:
--------------------------------------

> ::connect(OperationCallbackPtr& cb) is never called except from ::connect(). So they should be merged.

this interface is required by BOOKKEEPER-369 when refactoring cpp client to support multiplexing.

> ::connect(OperationCallbackPtr& cb) is never called except from ::connect(). So they should be merged.

connectCallbackHandler is the bound handler after the channel is connected. so the logic would be executed after connected, I think doAfterConnect would be OK.
                
> Add SSL support for hedwig cpp client
> -------------------------------------
>
>                 Key: BOOKKEEPER-143
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-143
>             Project: Bookkeeper
>          Issue Type: Improvement
>          Components: bookkeeper-client
>    Affects Versions: 4.0.0
>            Reporter: Sijie Guo
>            Assignee: Sijie Guo
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-143.diff, BOOKKEEPER-143.diff, BOOKKEEPER-143.patch
>
>
> Currently Hedwig CPP client doesn't support SSL. 
> Example for boost::asio using SSL:
> http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/ssl/client.cpp

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (BOOKKEEPER-143) Add SSL support for hedwig cpp client

Posted by "Sijie Guo (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-143?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13460092#comment-13460092 ] 

Sijie Guo commented on BOOKKEEPER-143:
--------------------------------------

{quote}
Why not create a context for each ssl_socket? It would avoid the need to modify event dispatcher at all. They take 60 microseconds to create, and are 24bytes in size. It seems reasonable as overhead as we'll have 64k sockets max anyhow.
{quote}

The 64k limitation is for a client connects to a host. If the client connects to several hosts, the number is not just 64k. besides that, I think 60 microseconds is calculated without loading verify file, if client loads and very pem file, the overhead would be big.
                
> Add SSL support for hedwig cpp client
> -------------------------------------
>
>                 Key: BOOKKEEPER-143
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-143
>             Project: Bookkeeper
>          Issue Type: Improvement
>          Components: bookkeeper-client
>    Affects Versions: 4.0.0
>            Reporter: Sijie Guo
>            Assignee: Sijie Guo
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-143.diff, BOOKKEEPER-143.diff, BOOKKEEPER-143.patch, ssl.segfault
>
>
> Currently Hedwig CPP client doesn't support SSL. 
> Example for boost::asio using SSL:
> http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/ssl/client.cpp

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (BOOKKEEPER-143) Add SSL support for hedwig cpp client

Posted by "Flavio Junqueira (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-143?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Flavio Junqueira updated BOOKKEEPER-143:
----------------------------------------

    Fix Version/s:     (was: 4.1.0)
                   4.2.0

Moving it to 4.2.0.
                
> Add SSL support for hedwig cpp client
> -------------------------------------
>
>                 Key: BOOKKEEPER-143
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-143
>             Project: Bookkeeper
>          Issue Type: Improvement
>          Components: bookkeeper-client
>    Affects Versions: 4.0.0
>            Reporter: Sijie Guo
>             Fix For: 4.2.0
>
>
> Currently Hedwig CPP client doesn't support SSL. 
> Example for boost::asio using SSL:
> http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/ssl/client.cpp

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (BOOKKEEPER-143) Add SSL support for hedwig cpp client

Posted by "Sijie Guo (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-143?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sijie Guo updated BOOKKEEPER-143:
---------------------------------

    Attachment: BOOKKEEPER-143.diff

Attach a new patch, which 

1) removes ssl context from eventdispatcher. instead, create a SSLContextFactory in channel.h to create ssl context for ssl channel.

seems that ssl context needs to be created for each channel. so I just created the context when creating the ssl channel.

2) remove ssl_shutdown when closeSockets for mac os. after that, the core dump doesn't appear. I am not sure why it cores when ssl shutdown, because ssl shutdown just send a shutdown notify request to server. so remove shutdown just close its underlying socket works well.
                
> Add SSL support for hedwig cpp client
> -------------------------------------
>
>                 Key: BOOKKEEPER-143
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-143
>             Project: Bookkeeper
>          Issue Type: Improvement
>          Components: bookkeeper-client
>    Affects Versions: 4.0.0
>            Reporter: Sijie Guo
>            Assignee: Sijie Guo
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-143.diff, BOOKKEEPER-143.diff, BOOKKEEPER-143.diff, BOOKKEEPER-143.patch, ssl.segfault
>
>
> Currently Hedwig CPP client doesn't support SSL. 
> Example for boost::asio using SSL:
> http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/ssl/client.cpp

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (BOOKKEEPER-143) Add SSL support for hedwig cpp client

Posted by "Sijie Guo (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-143?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sijie Guo updated BOOKKEEPER-143:
---------------------------------

    Attachment: BOOKKEEPER-143.patch

Attach a patch. 1) abstract channel interface 2) implemented ssl channel.

the patch is generated based on BOOKKEEPER-252.
                
> Add SSL support for hedwig cpp client
> -------------------------------------
>
>                 Key: BOOKKEEPER-143
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-143
>             Project: Bookkeeper
>          Issue Type: Improvement
>          Components: bookkeeper-client
>    Affects Versions: 4.0.0
>            Reporter: Sijie Guo
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-143.patch
>
>
> Currently Hedwig CPP client doesn't support SSL. 
> Example for boost::asio using SSL:
> http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/ssl/client.cpp

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (BOOKKEEPER-143) Add SSL support for hedwig cpp client

Posted by "Sijie Guo (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-143?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sijie Guo updated BOOKKEEPER-143:
---------------------------------

    Attachment: BOOKKEEPER-143.diff

Attach a new patch addressing Ivan's comment.
                
> Add SSL support for hedwig cpp client
> -------------------------------------
>
>                 Key: BOOKKEEPER-143
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-143
>             Project: Bookkeeper
>          Issue Type: Improvement
>          Components: bookkeeper-client
>    Affects Versions: 4.0.0
>            Reporter: Sijie Guo
>            Assignee: Sijie Guo
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-143.diff, BOOKKEEPER-143.diff, BOOKKEEPER-143.patch
>
>
> Currently Hedwig CPP client doesn't support SSL. 
> Example for boost::asio using SSL:
> http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/ssl/client.cpp

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (BOOKKEEPER-143) Add SSL support for hedwig cpp client

Posted by "Sijie Guo (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-143?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13460201#comment-13460201 ] 

Sijie Guo commented on BOOKKEEPER-143:
--------------------------------------

{quote}
Also, unittests segfault in testRandomDelivery.
I've attached the stacktrace from gdb.
{quote}

What version of your os, openssl and boost?

I run the test using "  c=1 ; while [ $c -le 10 ] ; do c=`expr $c + 1`;  make sslcheck; done " in a 2.6.18 linux with openssl-0.9.8 and boost1.38.0. It doesn't failed.

from the stacktrace, it seems that something wrong in ssl calls. if you could provide me the libraries version, I could track the issue.
                
> Add SSL support for hedwig cpp client
> -------------------------------------
>
>                 Key: BOOKKEEPER-143
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-143
>             Project: Bookkeeper
>          Issue Type: Improvement
>          Components: bookkeeper-client
>    Affects Versions: 4.0.0
>            Reporter: Sijie Guo
>            Assignee: Sijie Guo
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-143.diff, BOOKKEEPER-143.diff, BOOKKEEPER-143.patch, ssl.segfault
>
>
> Currently Hedwig CPP client doesn't support SSL. 
> Example for boost::asio using SSL:
> http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/ssl/client.cpp

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (BOOKKEEPER-143) Add SSL support for hedwig cpp client

Posted by "Ivan Kelly (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-143?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13459717#comment-13459717 ] 

Ivan Kelly commented on BOOKKEEPER-143:
---------------------------------------

Ssl should always be SSL or ssl, mixing the cases seems wrong.

getSslContex() is missing a t

Why not create a context for each ssl_socket? It would avoid the need to modify event dispatcher at all. They take 60 microseconds to create, and are 24bytes in size. It seems reasonable as overhead as we'll have 64k sockets max anyhow.

sslcheck should be in the toplevel Makefile.am also.
                
> Add SSL support for hedwig cpp client
> -------------------------------------
>
>                 Key: BOOKKEEPER-143
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-143
>             Project: Bookkeeper
>          Issue Type: Improvement
>          Components: bookkeeper-client
>    Affects Versions: 4.0.0
>            Reporter: Sijie Guo
>            Assignee: Sijie Guo
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-143.diff, BOOKKEEPER-143.diff, BOOKKEEPER-143.patch
>
>
> Currently Hedwig CPP client doesn't support SSL. 
> Example for boost::asio using SSL:
> http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/ssl/client.cpp

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (BOOKKEEPER-143) Add SSL support for hedwig cpp client

Posted by "Ivan Kelly (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-143?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13460341#comment-13460341 ] 

Ivan Kelly commented on BOOKKEEPER-143:
---------------------------------------

boost 1.50.0
OpenSSL 1.0.1c 10 May 2012
Darwin spokegrown-lm 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64 x86_64

                
> Add SSL support for hedwig cpp client
> -------------------------------------
>
>                 Key: BOOKKEEPER-143
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-143
>             Project: Bookkeeper
>          Issue Type: Improvement
>          Components: bookkeeper-client
>    Affects Versions: 4.0.0
>            Reporter: Sijie Guo
>            Assignee: Sijie Guo
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-143.diff, BOOKKEEPER-143.diff, BOOKKEEPER-143.patch, ssl.segfault
>
>
> Currently Hedwig CPP client doesn't support SSL. 
> Example for boost::asio using SSL:
> http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/ssl/client.cpp

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira