Add a QUIC_PEER_BUG with more detailed information when self address changes at server.

PiperOrigin-RevId: 428864863
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index 2fe7af3..83453ef 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -3009,10 +3009,19 @@
             last_received_packet_info_.destination_address.host()
                 .Normalized()) {
       if (!visitor_->AllowSelfAddressChange()) {
-        CloseConnection(
-            QUIC_ERROR_MIGRATING_ADDRESS,
-            "Self address migration is not supported at the server.",
-            ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
+        const std::string error_details = absl::StrCat(
+            "Self address migration is not supported at the server, current "
+            "address: ",
+            default_path_.self_address.ToString(),
+            ", received packet address: ",
+            last_received_packet_info_.destination_address.ToString(),
+            ", size: ", last_size_,
+            ", packet number: ", header.packet_number.ToString(),
+            ", encryption level: ",
+            EncryptionLevelToString(last_decrypted_packet_level_));
+        QUIC_PEER_BUG(Server self address change) << error_details;
+        CloseConnection(QUIC_ERROR_MIGRATING_ADDRESS, error_details,
+                        ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
         return false;
       }
     }
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc
index fba066c..8727d83 100644
--- a/quic/core/quic_connection_test.cc
+++ b/quic/core/quic_connection_test.cc
@@ -1576,8 +1576,10 @@
     EXPECT_CALL(visitor_, BeforeConnectionCloseSent());
   }
   EXPECT_CALL(visitor_, OnConnectionClosed(_, _));
-  ProcessFramePacketWithAddresses(MakeCryptoFrame(), self_address, kPeerAddress,
-                                  ENCRYPTION_INITIAL);
+  EXPECT_QUIC_PEER_BUG(
+      ProcessFramePacketWithAddresses(MakeCryptoFrame(), self_address,
+                                      kPeerAddress, ENCRYPTION_INITIAL),
+      "Self address migration is not supported at the server");
   EXPECT_FALSE(connection_.connected());
   TestConnectionCloseQuicErrorCode(QUIC_ERROR_MIGRATING_ADDRESS);
 }