<!DOCTYPE HTML>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    
  <style>#repo-username-link:visited{color:#333333}
#repo-username-link:hover{color:#333333}
#repo-username-link:active{color:#333333}
#branch-name-link:visited{color:#333333}
#branch-name-link:hover{color:#333333}
#branch-name-link:active{color:#333333}
.success:visited{color:#32D282}
.success:hover{color:#32D282}
.success:active{color:#32D282}
.failure:visited{color:#DB4545}
.failure:hover{color:#DB4545}
.failure:active{color:#DB4545}
.error:visited{color:#666766}
.error:hover{color:#666766}
.error:active{color:#666766}
#changeset-link:visited{color:#0068FF}
#changeset-link:hover{color:#0068FF}
#changeset-link:active{color:#0068FF}
#documentation-link:visited{color:#0068FF}
#documentation-link:hover{color:#0068FF}
#documentation-link:active{color:#0068FF}
#configuration-link:visited{color:#9EA3A8}
#configuration-link:hover{color:#9EA3A8}
#configuration-link:active{color:#9EA3A8}
#email-footer-section a:active{color:#9EA3A8}
#email-footer-section a:hover{color:#9EA3A8}
#email-footer-section a:visited{color:#9EA3A8}</style></head>
  <body style="min-width: 100%;height: 100%;margin: 0;padding: 0;">
    <table id="travis-ci-email-container" align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" style="height:100%;width:100%;padding:10px;font-family:'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;line-height:150%;text-align:center;color:#333333;background-color:#F4F5F9;background-image:url('https://s3.amazonaws.com/travis-email-assets/build_background.png');height: 100%;width: 100%;padding: 10px;font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;line-height: 150%;text-align: center;color: #333333;background-color: #F4F5F9;background-image: url(https://s3.amazonaws.com/travis-email-assets/build_background.png);">
      <tr>
        <td align="center" valign="top" style="padding-bottom: 20px;">
          <table id="email-content-container" border="0" cellpadding="0" cellspacing="0" style="width:500px;padding:32px;background-color:#FFFFFF;width: 500px; padding: 32px; background-color: #FFFFFF;">
            <!-- Repository Username Section -->
            <tr>
              <td id="repo-username-section" align="center" valign="top" style="padding-bottom:20px;padding-bottom: 20px;">
                <a id="repo-username-link" style="color:#333333;text-decoration:none;border-bottom:1px solid #333333;padding-bottom:4px;color: #333333; border-bottom: 1px solid #333333; text-decoration: none; padding-bottom: 4px;" href="https://travis-ci.org/ovsrobot/ovs?utm_medium=notification&amp;utm_source=email">
                  <p class="repo-slug" style="margin:0px;font-size:30px;font-weight:600;line-height:36px;padding-left:5px;display: inline; font-size: 30px; font-weight: 600; line-height: 36px; padding-right: 5px; padding-left: 0px;">ovsrobot</p>
                  <p id="repo-slug-divider" style="margin:0px;font-size:30px;font-weight:100;color:#9EA3A8;display: inline; font-size: 30px; font-weight: 100; color: #9EA3A8;">/</p>
                  <p class="repo-slug" style="margin:0px;font-size:30px;font-weight:600;line-height:36px;padding-left:5px;display: inline; font-size: 30px; font-weight: 600; line-height: 36px; padding-left: 5px;">ovs</p>
</a>              </td>
            </tr>
            <!-- Branch Name Section -->
            <tr>
              <td id="branch-name-section" align="center" valign="top" style="padding-bottom: 35px;">
                <p id="branch-name" style="margin:0px;font-size:28px;font-weight:300;margin: 0px; font-size: 28px; font-weight: 300;">
                  <img alt="branch icon" style="width:16px;height:auto;padding-right:8px;vertical-align:bottom;width: 16px; height: auto; padding-right: 8px; vertical-align: bottom;" src="https://s3.amazonaws.com/travis-email-assets/branch.png"><a id="branch-name-link" style="color:#333333;line-height:36px;text-decoration:none;border-bottom:1px solid #333333;text-decoration: none; border-bottom: 1px solid #333333; padding-bottom: 2px; line-height: 36px;" href="https://github.com/ovsrobot/ovs/tree/series_121597">series_121597</a>
                </p>
              </td>
            </tr>
            <!-- Build Status Section -->
            <tr>
              <td align="center" valign="top" style="padding-bottom: 20px;">
                <table cellpadding="0" cellspacing="0" class="build-status-border build-status-border-failure" style="border-radius:3px;border:1px solid #DB4545;width: 100%;">
                  <tr class="build-status-background-failure" style="background:rgba(219, 69, 69, 0.1)">
                    <td id="status-icon-section" align="center" valign="top" class="build-status-border-bottom-failure" style="border-bottom:1px solid #DB4545;padding: 15px 15px;">
                    <div style="float: left;">
                      <div style="display: inline;"><img alt="build has failed" style="display: inline; vertical-align: sub; width: 17px; height: 17px; padding-right: 8px;" src="https://s3.amazonaws.com/travis-email-assets/status-failed.png"></div><div style="display: inline;"><a id="status-section-message" class="failure" style="color:#DB4545;font-size: 16px; font-weight: 600;" href="https://travis-ci.org/ovsrobot/ovs/builds/563924285?utm_medium=notification&amp;utm_source=email">Build #1343 failed</a></div>
                    </div>
                      <div style="display: inline; float: left;"><img id="arrow" alt="arrow to build time" style="width: 7px; height: auto; vertical-align: text-bottom; padding: 0px 8px;" src="https://s3.amazonaws.com/travis-email-assets/failure-arrow.png"></div>
                    <div style="float: right;">
                      <span><img id="build-time-clock-icon" alt="clock icon" style="width: 15px; height: 17px; padding-right: 8px; vertical-align: sub" src="https://s3.amazonaws.com/travis-email-assets/time.png"></span><span style="font-size: 14px;">1 hr, 13 mins, and 43 secs</span>
                    </div>
                    </td>
                  </tr>
                  <tr>
                    <td id="user-avatar-changeset-section" align="center" valign="top" style="padding-bottom:32px;padding: 20px 15px 35px 15px;">
                      <div id="user-avatar-changeset-left" style="float:left;float: left;">
                        <p style="margin:0px;display: inline; font-size: 14px; font-weight: 700; color: #333333;">
                          <img alt="Damijan Skvarc avatar" style="width: 22px; height: auto; border-radius: 10px; vertical-align: middle; margin-right: 8px;" src="https://secure.gravatar.com/avatar/8ecd7af3dcc27493721b573d3ffea8e4">Damijan Skvarc
                        </p>
                      </div>
                      <div id="user-avatar-changeset-right" style="float:right;float: right;">
                        <a id="changeset-link" style="font-size:14px;font-weight:600;color:#0068FF;font-size: 14px; color: #0068FF; font-weight: 600;" href="https://github.com/ovsrobot/ovs/commit/5b8730f3ad61">5b8730f CHANGESET →</a>
                      </div>
                    </td>
                  </tr>
                  <tr>
                    <td id="commit-message-section" align="center" valign="top" style="min-height:104px;padding:0px 20px 20px 20px;min-height: 104px; padding: 0px 15px 20px 15px;">
                      <p id="commit-message" style="margin:0px;font-family:cousine, monospace;font-size:14px;line-height:22px;font-family: cousine, monospace; font-size: 14px; text-align: left; line-height: 22px;">stream_ssl: fix important memory leak in ssl_connect() function<br><br>While checking valgrind reports after running "make check-valgrind" I have noticed<br>reports for several tests similar to the following:<br><br>....<br>==5345== Memcheck, a memory error detector<br>==5345== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.<br>==5345== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info<br>==5345== Command: ovsdb-client --private-key=/home/damijan.skvarc/doma/ovs/tests/testpki-privkey.pem --certificate=/home/damijan.skvarc/doma/ovs/tests/testpki-cert.pem --ca-cert=/home/damijan.skvarc/doma/ovs/tests/testpki-cacert.pem transact ssl:127.0.0.1:40111 \ \ \ ["ordinals",<br>==5345== \ \ \ \ \ \ {"op":\ "update",<br>==5345== \ \ \ \ \ \ \ "table":\ "ordinals",<br>==5345== \ \ \ \ \ \ \ "where":\ [["number",\ "==",\ 1]],<br>==5345== \ \ \ \ \ \ \ "row":\ {"number":\ 2,\ "name":\ "old\ two"}},<br>==5345== \ \ \ \ \ \ {"op":\ "update",<br>==5345== \ \ \ \ \ \ \ "table":\ "ordinals",<br>==5345== \ \ \ \ \ \ \ "where":\ [["name",\ "==",\ "two"]],<br>==5345== \ \ \ \ \ \ \ "row":\ {"number":\ 1,\ "name":\ "old\ one"}}]<br>==5345== Parent PID: 5344<br>==5345==<br>==5345==<br>==5345== HEAP SUMMARY:<br>==5345==     in use at exit: 116,551 bytes in 3,341 blocks<br>==5345==   total heap usage: 5,134 allocs, 1,793 frees, 412,290 bytes allocated<br>==5345==<br>==5345== 6,221 (184 direct, 6,037 indirect) bytes in 1 blocks are definitely lost in loss record 498 of 500<br>==5345==    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)<br>==5345==    by 0x5105E77: CRYPTO_malloc (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)<br>==5345==    by 0x51E1D23: ??? (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)<br>==5345==    by 0x51E4861: ??? (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)<br>==5345==    by 0x51E5414: ASN1_item_ex_d2i (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)<br>==5345==    by 0x51E546A: ASN1_item_d2i (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)<br>==5345==    by 0x4E56B27: ??? (in /lib/x86_64-linux-gnu/libssl.so.1.0.0)<br>==5345==    by 0x4E5BA11: ??? (in /lib/x86_64-linux-gnu/libssl.so.1.0.0)<br>==5345==    by 0x4E65145: ??? (in /lib/x86_64-linux-gnu/libssl.so.1.0.0)<br>==5345==    by 0x4522DF: ssl_connect (stream-ssl.c:530)<br>==5345==    by 0x443D38: scs_connecting (stream.c:315)<br>==5345==    by 0x443D38: stream_connect (stream.c:338)<br>==5345==    by 0x443FA1: stream_open_block (stream.c:266)<br>==5345==    by 0x40AB79: open_jsonrpc (ovsdb-client.c:507)<br>==5345==    by 0x40AB79: open_rpc (ovsdb-client.c:143)<br>==5345==    by 0x40B06B: do_transact__ (ovsdb-client.c:871)<br>==5345==    by 0x40B245: do_transact (ovsdb-client.c:893)<br>==5345==    by 0x405F76: main (ovsdb-client.c:282)<br>==5345==<br>==5345== LEAK SUMMARY:<br>==5345==    definitely lost: 184 bytes in 1 blocks<br>==5345==    indirectly lost: 6,037 bytes in 117 blocks<br>==5345==      possibly lost: 0 bytes in 0 blocks<br>==5345==    still reachable: 110,330 bytes in 3,223 blocks<br>==5345==         suppressed: 0 bytes in 0 blocks<br>==5345== Reachable blocks (those to which a pointer was found) are not shown.<br>==5345== To see them, rerun with: --leak-check=full --show-leak-kinds=all<br>==5345==<br>==5345== For counts of detected and suppressed errors, rerun with: -v<br>==5345== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)<br>....<br><br>This report was extracted from "index uniqueness checking" test and complains about<br>leaking memory in ovsdb-client application. The problem is not huge, since ovsdb-client<br>is CLI tool which is constantly reinvoked/restarted, thus leaked memory is not accumulated.<br><br>More problematic issue is that for the same test valgrind reports the similar problem also for<br>ovsdb-server:<br><br>....<br>==5290== Memcheck, a memory error detector<br>==5290== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.<br>==5290== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info<br>==5290== Command: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=/home/damijan.skvarc/doma/ovs/tests/testpki-privkey2.pem --certificate=/home/damijan.skvarc/doma/ovs/tests/testpki-cert2.pem --ca-cert=/home/damijan.skvarc/doma/ovs/tests/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db<br>==5290== Parent PID: 5289<br>==5290==<br>==5292== Warning: noted but unhandled ioctl 0x2403 with no size/direction hints.<br>==5292==    This could cause spurious value errors to appear.<br>==5292==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.<br>==5292== Warning: noted but unhandled ioctl 0x2400 with no size/direction hints.<br>==5292==    This could cause spurious value errors to appear.<br>==5292==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.<br>==5290==<br>==5290== HEAP SUMMARY:<br>==5290==     in use at exit: 2,066 bytes in 48 blocks<br>==5290==   total heap usage: 87 allocs, 39 frees, 14,152 bytes allocated<br>==5290==<br>==5290== LEAK SUMMARY:<br>==5290==    definitely lost: 0 bytes in 0 blocks<br>==5290==    indirectly lost: 0 bytes in 0 blocks<br>==5290==      possibly lost: 0 bytes in 0 blocks<br>==5290==    still reachable: 2,066 bytes in 48 blocks<br>==5290==         suppressed: 0 bytes in 0 blocks<br>==5290== Reachable blocks (those to which a pointer was found) are not shown.<br>==5290== To see them, rerun with: --leak-check=full --show-leak-kinds=all<br>==5290==<br>==5290== For counts of detected and suppressed errors, rerun with: -v<br>==5290== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 1 from 1)<br>==5292== Warning: noted but unhandled ioctl 0x2401 with no size/direction hints.<br>==5292==    This could cause spurious value errors to appear.<br>==5292==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.<br>==5292==<br>==5292== HEAP SUMMARY:<br>==5292==     in use at exit: 164,018 bytes in 4,252 blocks<br>==5292==   total heap usage: 17,910 allocs, 13,658 frees, 1,907,468 bytes allocated<br>==5292==<br>==5292== 49,720 (1,472 direct, 48,248 indirect) bytes in 8 blocks are definitely lost in loss record 580 of 580<br>==5292==    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)<br>==5292==    by 0x5105E77: CRYPTO_malloc (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)<br>==5292==    by 0x51E1D23: ??? (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)<br>==5292==    by 0x51E4861: ??? (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)<br>==5292==    by 0x51E5414: ASN1_item_ex_d2i (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)<br>==5292==    by 0x51E546A: ASN1_item_d2i (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)<br>==5292==    by 0x4E53E00: ??? (in /lib/x86_64-linux-gnu/libssl.so.1.0.0)<br>==5292==    by 0x4E55727: ??? (in /lib/x86_64-linux-gnu/libssl.so.1.0.0)<br>==5292==    by 0x452C4B: ssl_connect (stream-ssl.c:530)<br>==5292==    by 0x445B18: scs_connecting (stream.c:315)<br>==5292==    by 0x445B18: stream_connect (stream.c:338)<br>==5292==    by 0x445B91: stream_recv (stream.c:369)<br>==5292==    by 0x432A9C: jsonrpc_recv.part.7 (jsonrpc.c:310)<br>==5292==    by 0x433977: jsonrpc_recv (jsonrpc.c:1139)<br>==5292==    by 0x433977: jsonrpc_session_recv (jsonrpc.c:1112)<br>==5292==    by 0x40CCE3: ovsdb_jsonrpc_session_run (jsonrpc-server.c:553)<br>==5292==    by 0x40CCE3: ovsdb_jsonrpc_session_run_all (jsonrpc-server.c:586)<br>==5292==    by 0x40CCE3: ovsdb_jsonrpc_server_run (jsonrpc-server.c:401)<br>==5292==    by 0x40682E: main_loop (ovsdb-server.c:209)<br>==5292==    by 0x40682E: main (ovsdb-server.c:460)<br>==5292==<br>==5292== LEAK SUMMARY:<br>==5292==    definitely lost: 1,472 bytes in 8 blocks<br>==5292==    indirectly lost: 48,248 bytes in 936 blocks<br>==5292==      possibly lost: 0 bytes in 0 blocks<br>==5292==    still reachable: 114,298 bytes in 3,308 blocks<br>==5292==         suppressed: 0 bytes in 0 blocks<br>==5292== Reachable blocks (those to which a pointer was found) are not shown.<br>==5292== To see them, rerun with: --leak-check=full --show-leak-kinds=all<br>==5292==<br>==5292== For counts of detected and suppressed errors, rerun with: -v<br>==5292== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 1 from 1)<br>....<br><br>In this case ovsdb-server is running as daemon process (--detach option) and leaking memory is<br>accumulated whenever ovsdb-client is reconnected. Within observed test ovsdb-client CLI tool<br>connects 8 times to ovsdb-server. Leaked memory in ovsdb-client (for each invocation) is approx.<br>6K bytes, while leaked memory in ovsdb-server is aprox. 48Kbytes what is actually 8*6K. Thus per<br>each connection both ovsdb-client and ovsdb-server leak approx. 6K bytes.<br><br>I have done a small manual test to check if ovsdb-server is indeed accumulating leaked memory<br>by dumping ovsdb-server in a loop:<br><br>console1:<br>ovsdb-server \<br>--log-file \<br>--detach --no-chdir --pidfile \<br>--private-key=testpki-privkey2.pem \<br>--certificate=testpki-cert2.pem \<br>--ca-cert=testpki-cacert.pem \<br>--remote=pssl:0:127.0.0.1 \<br>db<br><br>while (true); do \<br>ovsdb-client \<br>--private-key=testpki-privkey.pem \<br>--certificate=testpki-cert.pem \<br>--ca-cert=testpki-cacert.pem \<br>dump ssl:127.0.0.1:42067; \<br>done<br><br>console2:<br>watch -n 0.5 'cat /proc/$(pidof ovsdb-server)/status | grep VmSize'<br><br>In console2 it was evidently seen ovsdb-server is constantly leaking memory. After a while<br>(i.e. after a certain number of reconnections) the OOM killer jumps out and kills ovsdb-server.<br><br>Very similar situation was already noticed and described in<br>https://github.com/openvswitch/ovs-issues/issues/168. There, the problem pops up while connecting<br>controller to ovs-vswitchd daemon.<br><br>Valgrind reports point to a problem in openssl library, however after studying openssl code for<br>a while I have found out the problem is actually in ovs. When connection through SSL channel is<br>taken place openssl library allocates memory for keeping track of certificate. Reference to this<br>memory works very similar as std::shared_ptr pointer in recent C++ dialects. i.e. when allocated<br>memory is referenced its reference counter is incremented and decremented after the memory is<br>derefered. When reference counter becomes zero allocated memory is automatically deallocated.<br><br>In openssl library environment certificate is retrieved by calling SSL_get_peer_certificate()<br>where its reference counter is incremented. After retrieved certificate is not used any more its<br>reference counter must be decremented by calling X509_free(). If not, allocated memory is never<br>freed despite the ssl connection is properly closed.<br><br>The problem was caused in stream-ssl.c in function ssl_connect(), which retrieves common peer name<br>by calling SSL_get_peer_certificate() function and without calling X509_free() function afterwards.<br><br>Signed-off-by: Damijan Skvarc &lt;damjan.skvarc@gmail.com&gt;<br>Signed-off-by: 0-day Robot &lt;robot@bytheb.org&gt;</p>
                    </td>
                  </tr>
                </table>
              </td>
            </tr>
          </table>
        </td>
      </tr>
      <!-- Broadcast Section -->
      <!-- Build Environment Updates Section -->
      <tr>
        <td id="update-section" align="center" valign="top" style="padding-bottom:20px;padding-bottom: 20px;">
          <table id="update-container" border="0" cellpadding="0" cellspacing="0" style="width:500px;padding:32px 32px 42px 32px;background-color:#FFFFFF;width: 500px; padding: 32px 32px 42px 32px; background-color: #FFFFFF">
            <tr>
              <td align="center" valign="top">
                <p id="update-header" style="margin:0px;font-size:24px;line-height:31px;margin-bottom:20px;padding-bottom:10px;border-bottom:2px solid #0068FF;border-bottom: 2px solid #0068FF; padding-bottom: 10px; font-size: 24px; line-height: 31px; margin-bottom: 20px;">Want to know about upcoming build environment updates?</p>
                <p id="update-message" style="margin:0px;font-size:16px;font-weight:300;line-height:26px;margin-bottom:32px;font-size: 16px; line-height: 26px; font-weight: 300; margin-bottom: 32px;">Would you like to stay up-to-date with the upcoming Travis CI build environment updates? We set up a mailing list for you!</p>
                <a id="sign-up-button" style="font-size:14px;font-weight:600;color:#FFFFFF;text-decoration:none;background-color:#0068FF;padding:12px 20px;border-radius:3px;font-size: 14px; font-weight: 600; color: #FFFFFF; background-color: #0068FF; text-decoration: none; padding: 12px 20px; border-radius: 3px;" href="http://eepurl.com/9OCsP">SIGN UP HERE</a>
              </td>
            </tr>
          </table>
        </td>
      </tr>
      <!-- Documentation Section -->
      <tr>
        <td align="center" valign="top" style="padding-bottom: 20px;">
          <table id="documentation-container" border="0" cellpadding="0" cellspacing="0" style="width:500px;padding:25px;background-color:rgba(222,239,255,0.3);border:1px solid #66A4FF;border-radius:3px;width: 500px; padding: 25px; background-color: rgba(222,239,255,0.3); border: 1px solid #66A4FF; border-radius: 3px;">
            <tr>
              <td id="documentation-section" align="center" valign="top">
                <div>
                  <img alt="book icon" id="documentation-icon" style="display:inline;vertical-align:bottom;padding-right:5px;display: inline; vertical-align: bottom; padding-right: 5px;" src="https://s3.amazonaws.com/travis-email-assets/documentation.png">
                  <p id="documentation-text" style="margin:0px;display:inline;font-size:26px;font-weight:300;color:#0068FF;font-size: 26px; font-weight: 300; color: #0068FF; display: inline;">
                    <a id="documentation-link" href="https://docs.travis-ci.com/" style="color:#0068FF">Documentation</a> about Travis CI
                  </p>
                </div>
              </td>
            </tr>
          </table>
        </td>
      </tr>
      <!-- Email Footer Section -->
      <tr>
        <td align="center" valign="top">
          <table id="travis-ci-email-footer-container" border="0" cellpadding="20" cellspacing="0" style="width:500px;width: 500px;">
            <tr>
              <td id="questions-section" align="center" valign="top" style="font-weight:300;color:#0068FF;color:#0068FF; font-weight: 300;">
                <span>Have any questions?</span>
                <span>
                  <a href="mailto:support@travis-ci.com" style="color: #0068FF">We're here to help.</a>
                </span>
              </td>
            </tr>
            <tr>
              <td id="email-footer-section" align="center" valign="top" style="font-size:10px;line-height:200%;text-align:center;color:#9EA3A8;padding-top:0px">
                <span>
                    <a href="https://travis-ci.org/account/preferences/unsubscribe?repository=22285853&amp;utm_medium=notification&amp;utm_source=email" style="color:#9EA3A8">Unsubscribe</a> from build emails from the ovsrobot/ovs repository.
                </span>
              </td>
            </tr>
            <tr>
              <td id="email-footer-section" align="center" valign="top" style="font-size:10px;line-height:200%;text-align:center;color:#9EA3A8;padding-top:0px">
                <span>
                  To unsubscribe from <strong>all</strong> build emails, please update your <a href="https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&amp;utm_source=email" style="color:#9EA3A8">settings</a>.
                </span>
              </td>
            </tr>
            <tr>
              <td id="travis-ci-footer-logo-section" style="text-align:center;text-align: center;">
                <a href="https://travis-ci.com"><img alt="black and white travis ci logo" src="https://s3.amazonaws.com/travis-email-assets/TravisCI-Logo-BW.png"></a>
              </td>
            </tr>
            <tr>
              <td id="email-footer-section" style="font-size:10px;line-height:200%;text-align:center;color:#9EA3A8;padding-top:0px;color: #9EA3A8; font-size: 10px; line-height: 200%; text-align: center; color: #9EA3A8; padding-top: 0px;">
                <p style="margin:0px;margin: 0px;">Travis CI GmbH, Rigaer Str. 8, 10427 Berlin, Germany | GF/CEO: Randy Jacops |
                  <span>Contact: <a style="color:#9EA3A8;color: #9EA3A8;" href="mailto:contact@travis-ci.com">contact@travis-ci.com</a> | Amtsgericht Charlottenburg, Berlin, HRB 140133 B | Umsatzsteuer-ID gemäß §27 a Umsatzsteuergesetz: DE282002648</span>
                </p>
              </td>
            </tr>
          </table>
        </td>
      </tr>
    </table>
    <script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "EmailMessage",
      "action": {
        "@type": "ViewAction",
        "url": "https://travis-ci.org/ovsrobot/ovs/builds/563924285?utm_medium=notification&amp;utm_source=email",
        "name": "View Build"
      },
      "description": "View Build #1343 on Travis CI"
    }
    </script>
  </body>
</html>