New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 877514 link

Starred by 0 users

Issue metadata

Status: Duplicate
Merged: issue 877515
Owner:
Closed: Sep 5
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 1
Type: Bug-Security



Sign in to add a comment

P2PSocketTcpBase::Send unsafely deletes itself.

Project Member Reported by mmenke@chromium.org, Aug 24

Issue description

P2PSocketTcpBase::Send() deletes itself if sent a packet that's too large...And then, having deleted itself, checks if socket_ is non-null, dereferencing itself despite that fact that it's already deleted.
 
Showing comments 5 - 104 of 104 Older
Status: Fixed (was: Started)
Project Member

Comment 6 by sheriffbot@chromium.org, Aug 25

Labels: Restrict-View-SecurityNotify
Project Member

Comment 7 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 8 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 9 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 10 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 11 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 12 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 13 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 14 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 15 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 16 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 17 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 18 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 19 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 20 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 21 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 22 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 23 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 24 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 25 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 26 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 27 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 28 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 29 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 30 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 31 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 32 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 33 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 34 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 35 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 36 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 37 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 38 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 39 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 40 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 41 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 42 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 43 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 44 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 45 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 46 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 47 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 48 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 49 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 50 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 51 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 52 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 53 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 54 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 55 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 56 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 57 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 58 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 59 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 60 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 61 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 62 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 63 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 64 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 65 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 66 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 67 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 68 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 69 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 70 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 71 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 72 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 73 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 74 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 75 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 76 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 77 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 78 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 79 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 80 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 81 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 82 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 83 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 84 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 85 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 86 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 87 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 88 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 89 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 90 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 91 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 92 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 93 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 94 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 95 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Project Member

Comment 96 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6df63454fdf61d917b3b345e70b2b7504ca8a7e

commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Mon Sep 03 19:42:04 2018

Cleanup lifetime handling in P2P sockets.

Several fixes for P2P sockets:
 1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
 2. Previously P2P sockets were destroyed only in response to Mojo
    interfaces errors. They were not destroyed on other error. Fixed
    it now.
 3. Simplified TCP server socket protocol. Now the accepted socket is
    passed directly in IncomingTcpConnection.
 4. Updated unittests to verify that P2P sockets are destroyed in
    response to errors.
 5. Other minor cleanups, particularly moved packet dump logic to
    SocketManager and removed some unittests that are not relevant
    after migration to mojo.

Bug: 877515,  877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
Reviewed-on: https://chromium-review.googlesource.com/1189083
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588430}
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e6df63454fdf61d917b3b345e70b2b7504ca8a7e/services/network/public/mojom/p2p.mojom

Project Member

Comment 97 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d31f5b3597f211d4e1074eb3678e50c95dacff0d

commit d31f5b3597f211d4e1074eb3678e50c95dacff0d
Author: Takashi Sakamoto <tasak@google.com>
Date: Tue Sep 04 01:06:13 2018

Revert "Cleanup lifetime handling in P2P sockets."

This reverts commit e6df63454fdf61d917b3b345e70b2b7504ca8a7e.

Reason for revert: 
Suspect WebKit Linux Trusty MSAN failures:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/9778

crash log for content_shell (pid 19555):
STDOUT: <empty>
STDERR: [1:16:0903/135605.516164:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
STDERR: CONSOLE WARNING: line 371: The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
STDERR: ==19555==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:     #0 0x119c0a99 in network::P2PSocketUdp::HandleReadResult(int) ./../../services/network/p2p/socket_udp.cc:231:9
STDERR:     #1 0x119bf30b in network::P2PSocketUdp::OnRecv(int) ./../../services/network/p2p/socket_udp.cc:202:3
STDERR:     #2 0xc8cd202 in Run ./../../base/callback.h:99:12
STDERR:     #3 0xc8cd202 in DoReadCallback ./../../net/socket/udp_socket_posix.cc:690:0
STDERR:     #4 0xc8cd202 in net::UDPSocketPosix::DidCompleteRead() ./../../net/socket/udp_socket_posix.cc:711:0
STDERR:     #5 0xc8cc98d in net::UDPSocketPosix::ReadWatcher::OnFileCanReadWithoutBlocking(int) ./../../net/socket/udp_socket_posix.cc:676:14
STDERR:     #6 0xb3aa2ec in base::MessagePumpLibevent::OnLibeventNotification(int, short, void*) ./../../base/message_loop/message_pump_libevent.cc:0:13
STDERR:     #7 0xb3c2bd6 in event_process_active ./../../base/third_party/libevent/event.c:381:4
STDERR:     #8 0xb3c2bd6 in event_base_loop ./../../base/third_party/libevent/event.c:521:0
STDERR:     #9 0xb3aaf3e in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_libevent.cc:214:5
STDERR:     #10 0xb12a9ff in base::RunLoop::Run() ./../../base/run_loop.cc:102:14
STDERR:     #11 0x8655f3e in content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) ./../../content/browser/browser_process_sub_thread.cc:175:11
STDERR:     #12 0xb26ea58 in base::Thread::ThreadMain() ./../../base/threading/thread.cc:357:3
STDERR:     #13 0xb39a887 in base::(anonymous namespace)::ThreadFunc(void*) ./../../base/threading/platform_thread_posix.cc:76:13
STDERR:     #14 0x7ffa170eb183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312:0
STDERR:     #15 0x7ffa0fa3703c in clone /build/eglibc-ripdx6/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111:0
STDERR: 
STDERR:   Uninitialized value was created by a heap allocation
STDERR:     #0 0x1ab9a79 in operator new(unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc:46:35
STDERR:     #1 0x119a51de in network::P2PSocket::Create(network::P2PSocket::Delegate*, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>, network::P2PSocketType, net::NetLog*, network::ProxyResolvingClientSocketFactory*, network::P2PMessageThrottler*) ./../../services/network/p2p/socket.cc:173:14
STDERR:     #2 0x1198d68c in network::P2PSocketManager::CreateSocket(network::P2PSocketType, net::IPEndPoint const&, network::P2PPortRange const&, network::P2PHostAndIPEndPoint const&, mojo::InterfacePtr<network::mojom::P2PSocketClient>, mojo::InterfaceRequest<network::mojom::P2PSocket>) ./../../services/network/p2p/socket_manager.cc:294:7
STDERR:     #3 0x1e6127b in network::mojom::P2PSocketManagerStubDispatch::Accept(network::mojom::P2PSocketManager*, mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.cc:1105:13
STDERR:     #4 0x11991146 in network::mojom::P2PSocketManagerStub<mojo::RawPtrImplRefTraits<network::mojom::P2PSocketManager> >::Accept(mojo::Message*) ./gen/services/network/public/mojom/p2p.mojom.h:446:12
STDERR:     #5 0xb407929 in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:423:32
STDERR:     #6 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #7 0xb421df5 in mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:869:42
STDERR:     #8 0xb41f60d in mojo::internal::MultiplexRouter::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/multiplex_router.cc:590:38
STDERR:     #9 0xb4056da in mojo::FilterChain::Accept(mojo::Message*) ./../../mojo/public/cpp/bindings/lib/filter_chain.cc:40:17
STDERR:     #10 0xb3fdbc2 in mojo::Connector::ReadSingleMessage(unsigned int*) ./../../mojo/public/cpp/bindings/lib/connector.cc:457:51
STDERR:     #11 0xb400300 in mojo::Connector::ReadAllAvailableMessages() ./../../mojo/public/cpp/bindings/lib/connector.cc:486:10
STDERR:     #12 0xb3e106b in Run ./../../base/callback.h:129:12
STDERR:     #13 0xb3e106b in mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) ./../../mojo/public/cpp/system/simple_watcher.cc:273:0
STDERR:     #14 0xb3e1a6c in mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) ./../../mojo/public/cpp/system/simple_watcher.cc:105:22
STDERR:     #15 0xb3de578 in mojo::SimpleWatcher::Context::CallNotify(MojoTrapEvent const*) ./../../mojo/public/cpp/system/simple_watcher.cc:55:14
STDERR:     #16 0x46bbfd7 in mojo::core::WatcherDispatcher::InvokeWatchCallback(unsigned long, unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watcher_dispatcher.cc:90:3
STDERR:     #17 0x46b9935 in mojo::core::Watch::InvokeCallback(unsigned int, mojo::core::HandleSignalsState const&, unsigned int) ./../../mojo/core/watch.cc:78:13
STDERR:     #18 0x46a4715 in mojo::core::RequestContext::~RequestContext() ./../../mojo/core/request_context.cc:72:20
STDERR:     #19 0x466c618 in mojo::core::NodeChannel::OnChannelMessage(void const*, unsigned long, std::__1::vector<mojo::PlatformHandle, std::__1::allocator<mojo::PlatformHandle> >) ./../../mojo/core/node_channel.cc:695:1
STDERR:     #20 0x461c6a4 in mojo::core::Channel::OnReadComplete(unsigned long, unsigned long*) ./../../mojo/core/channel.cc:714:18
STDERR: 
STDERR: SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x119c0a99)
STDERR: Exiting
STDERR: [19588:19588:0903/135606.482234:WARNING:x11_util.cc(1391)] X error received: serial 170, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

Original change's description:
> Cleanup lifetime handling in P2P sockets.
> 
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
> 
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=nasko@chromium.org,jam@chromium.org,mmenke@chromium.org,sergeyu@chromium.org

Change-Id: I33bfb1c8127a945df37fd8bf9efda681a739095e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877515, 877514
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1203492
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#588440}
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_manager.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp.h
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/d31f5b3597f211d4e1074eb3678e50c95dacff0d/services/network/public/mojom/p2p.mojom

Status: Assigned (was: Fixed)
reopening since fix was reverted
Project Member

Comment 99 by sheriffbot@chromium.org, Sep 5

Labels: -Security_Impact-Head Security_Impact-Beta
Project Member

Comment 100 by sheriffbot@chromium.org, Sep 5

Labels: ReleaseBlock-Stable
This is a serious security regression. If you are not able to fix this quickly, please revert the change that introduced it.

If this doesn't affect a release branch, or has not been properly classified for severity, please update the Security_Impact or Security_Severity labels, and remove the ReleaseBlock label. To disable this altogether, apply ReleaseBlock-NA.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Mergedinto: 877515
Status: Duplicate (was: Assigned)
Project Member

Comment 102 by bugdroid1@chromium.org, Sep 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e07f39713079cbd5b79cf947e6528e368bedd501

commit e07f39713079cbd5b79cf947e6528e368bedd501
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Wed Sep 05 16:27:54 2018

Reland "Cleanup lifetime handling in P2P sockets."

This is a reland of e6df63454fdf61d917b3b345e70b2b7504ca8a7e

Original change's description:
> Cleanup lifetime handling in P2P sockets.
>
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
>
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=jam@chromium.org,wfh@chromium.org

Bug: 877515, 877514,880218
Change-Id: I0cc79616b70f7900e6c551a7c91e404de2fb7dd3
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1206338
Commit-Queue: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588887}
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/services/network/p2p/socket.cc
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/services/network/p2p/socket.h
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/services/network/p2p/socket_manager.h
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/services/network/p2p/socket_udp.h
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/e07f39713079cbd5b79cf947e6528e368bedd501/services/network/public/mojom/p2p.mojom

Project Member

Comment 103 by bugdroid1@chromium.org, Sep 5

Labels: merge-merged-3538
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fb713998d9d9e769ba92e01c82a4c94fcc86ea33

commit fb713998d9d9e769ba92e01c82a4c94fcc86ea33
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Wed Sep 05 16:45:31 2018

Reland "Cleanup lifetime handling in P2P sockets."

This is a reland of e6df63454fdf61d917b3b345e70b2b7504ca8a7e

Original change's description:
> Cleanup lifetime handling in P2P sockets.
>
> Several fixes for P2P sockets:
>  1. P2PSocketTcpBase no longer posts tasks with base::Unretained().
>  2. Previously P2P sockets were destroyed only in response to Mojo
>     interfaces errors. They were not destroyed on other error. Fixed
>     it now.
>  3. Simplified TCP server socket protocol. Now the accepted socket is
>     passed directly in IncomingTcpConnection.
>  4. Updated unittests to verify that P2P sockets are destroyed in
>     response to errors.
>  5. Other minor cleanups, particularly moved packet dump logic to
>     SocketManager and removed some unittests that are not relevant
>     after migration to mojo.
>
> Bug: 877515,  877514
> Cq-Include-Trybots: luci.chromium.try:linux_mojo
> Change-Id: I55276e372185c558667289a1efdfcf0421c3d7bc
> Reviewed-on: https://chromium-review.googlesource.com/1189083
> Reviewed-by: Nasko Oskov <nasko@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588430}

TBR=jam@chromium.org,wfh@chromium.org

Bug: 877515, 877514,880218
Change-Id: I0cc79616b70f7900e6c551a7c91e404de2fb7dd3
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Reviewed-on: https://chromium-review.googlesource.com/1206338
Commit-Queue: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#588887}(cherry picked from commit e07f39713079cbd5b79cf947e6528e368bedd501)
Reviewed-on: https://chromium-review.googlesource.com/1207091
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Cr-Commit-Position: refs/branch-heads/3538@{#51}
Cr-Branched-From: 79f7c91a2b2a2932cd447fa6f865cb6662fa8fa6-refs/heads/master@{#587811}
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/content/renderer/p2p/socket_client_impl.cc
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/content/renderer/p2p/socket_client_impl.h
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/services/network/p2p/socket.cc
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/services/network/p2p/socket.h
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/services/network/p2p/socket_manager.cc
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/services/network/p2p/socket_manager.h
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/services/network/p2p/socket_tcp.cc
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/services/network/p2p/socket_tcp.h
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/services/network/p2p/socket_tcp_server.cc
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/services/network/p2p/socket_tcp_server.h
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/services/network/p2p/socket_tcp_server_unittest.cc
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/services/network/p2p/socket_tcp_unittest.cc
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/services/network/p2p/socket_test_utils.cc
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/services/network/p2p/socket_test_utils.h
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/services/network/p2p/socket_udp.cc
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/services/network/p2p/socket_udp.h
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/services/network/p2p/socket_udp_unittest.cc
[modify] https://crrev.com/fb713998d9d9e769ba92e01c82a4c94fcc86ea33/services/network/public/mojom/p2p.mojom

Project Member

Comment 104 by sheriffbot@chromium.org, Dec 13

Labels: -Restrict-View-SecurityNotify allpublic
This bug has been closed for more than 14 weeks. Removing security view restrictions.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Showing comments 5 - 104 of 104 Older

Sign in to add a comment