From patchwork Tue May 14 09:51:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aditya Vidyadhar Kamath X-Patchwork-Id: 90102 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id DB2303870C39 for ; Tue, 14 May 2024 09:52:38 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com [IPv6:2607:f8b0:4864:20::631]) by sourceware.org (Postfix) with ESMTPS id CD2D83870C2D for ; Tue, 14 May 2024 09:52:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CD2D83870C2D Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org CD2D83870C2D Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::631 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715680324; cv=none; b=UkSk7x6lEOGwO9s9FT5FNP2utRJzncLvkl/GlkR/MXMkbp8L4GTyd2Qs8JfeKoOSrhPdMnRsjHJB8vqLYGgL40hehcLMKg5KJVGoM2FUr6kxjJjdyp7YnZyt7yy5ahH5LiaewZMWOUkW8RRiVJFKny7HKBdTdVQwKDLzd0Pf5Sc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715680324; c=relaxed/simple; bh=JKFn2GlHhXU0j4d59S8OVwNcNRf3WYrlrjaOhN9HXYU=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=gbrFItbDRf3UWAjL3yQN+qiy0TH7MRToWmSV6kjgzi4vnI+el+Cv2TaOV+XghcLVIg20Vak6PYN+3ARUsVJDxyjpT0EMMdoIMnr3DD2UumcSWPYgxxHGBY5KdMdsNLthnFYxBCQV+3m+HSwnHNaYEKDIu4+S7c79ifZEzZBbhsc= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-1f08442b7bcso4729015ad.1 for ; Tue, 14 May 2024 02:52:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715680321; x=1716285121; darn=sourceware.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=4COdu/nT/7+NPpX5f3iTql4aHU8jQdZQ8WJJymO4Zio=; b=LesS9CJCR5+lm0Ub6IJR9OMSowHflIE72EQPgE2jHlDK13N/V8y22rdBykNG4HiAUh HEhWBLsnRMzl33Unw2ZIeo7xNGC/fPkUskAOPaNR1EZcYwN0sWsQdfafhwcTnWg+bp5Q N4DOy4CB5Y53AAHcuVgHZGFL3ry0IDhNxL/92/WeNNpwWMwFbR/1FYISt1FvvLm59BjR Icq+AdBizkq+jxTPFYPI6TBRKRTor/uUXkYt6uM3vemnojMbkTwQ/nv5GGYYLChDNaIe En9LlWNE7eTC6vjvl8eUbLN6IGVZkvacSAHcln3JX9XFmKcXAf9J6aykDoEUkdcTXzNn jskg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715680321; x=1716285121; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=4COdu/nT/7+NPpX5f3iTql4aHU8jQdZQ8WJJymO4Zio=; b=T9yqfxktJtw5sXaFdxR/wiO1YqOTG6PSEcDsBBp077Jfa5xcnwKZm1O8JMHycFuAcD geEtQeiDZghmiefHhWBV+5HSZ+bLS6JjIN5++x0kBhyXsxxs4dWme2zLQkqKS2UfXlez PPHRiy1Bi2C2g2WrLPCj3odvrd80+VoxOyJjvCQNdLAcOidxYBHX17ErpH9N0+WIicE0 l+tzwZzUJX2NrQrP8Ix+ONqqaT4UX2saVK4Eu8EFezEVPoyR2IJCCFBfr9GGnKrelwS4 2Yy9rxf/v/Xk0pWG19pqX7RR20FK/PRxH3A+oR0/Uq0Wk4YVK4nZkCFrkf34cz1fq1CE axeg== X-Forwarded-Encrypted: i=1; AJvYcCWFGiLojmFbMQfSEH2jRqC1mHvnFX/q7E4h3Tmmkujgbg34h+pDupJbnb+OhTwu+0zuXu1FxJtMeeg1n5eQB2595Kb4i3YZfd1tuA== X-Gm-Message-State: AOJu0YwjddDHnEdJlXqxijqUCMAYrZLxlCRMsTZOK5E55AgcP6DAntHW acgR0C+xPQd2fo9zuL4ek08sqa0n/7efkJ08yBqs00D1F78YBBVhVhAuzl0V X-Google-Smtp-Source: AGHT+IGulLHF9yUbZY5Ut5+JKeLT+w6VQn501rJaOZQc23tydTGlZEQ6oqcTmAgeOIEJ7gCMQPfaCA== X-Received: by 2002:a17:902:d2c9:b0:1e3:f4f1:a2c4 with SMTP id d9443c01a7336-1ef44050d4bmr154870345ad.64.1715680320836; Tue, 14 May 2024 02:52:00 -0700 (PDT) Received: from localhost.localdomain ([129.41.58.6]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1ef0bad634asm93826475ad.87.2024.05.14.02.51.58 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 14 May 2024 02:52:00 -0700 (PDT) From: Aditya Vidyadhar Kamath To: tom@tromey.com Cc: ulrich.weigand@de.ibm.com, gdb-patches@sourceware.org, Aditya.Kamath1@ibm.com, sangamesh.swamy@in.ibm.com Subject: [PATCH] Fix Segmentation Fault in AIX during multi process debugging. Date: Tue, 14 May 2024 15:21:41 +0530 Message-Id: <20240514095141.6474-1-akamath996@gmail.com> X-Mailer: git-send-email 2.39.3 (Apple Git-146) MIME-Version: 1.0 X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org From: Aditya Vidyadhar Kamath Due to the recent commit in aix-thread.c, we see a segmentation fault in AIX while debugging multiple process involving multiple threads. One example is a thread that can fork. The GDB output in AIX for the same is Reading symbols from //gdb_tests/multi-thread-fork... (gdb) set detach-on-fork off (gdb) r Starting program: /gdb_tests/multi-thread-fork [New Thread 258 (tid 67110997)] [New Thread 515 (tid 127404289)] [New inferior 2 (process 16580940)] Hello from Parent! [process 16580940 exited] [New inferior 3 (process 14549318)] Hello from Parent! [process 14549318 exited] Fatal signal: Segmentation fault ----- Backtrace ----- This is because in sync_threadlists () in aix-thread.c there when we delete threads in unknown state we iterate through all the threads. When we have one or more threads with the same user thread ID but of different process then we delete a wrong thread. Since we just check only the pdtid in in_queue_threads.count (priv->pdtid) == 0 this happened. This patch is a fix for the same. The output after we apply this patch is: Reading symbols from //gdb_tests/multi-thread-fork... (gdb) set detach-on-fork off (gdb) r Starting program: /gdb_tests/multi-thread-fork [New Thread 258 (tid 75565441)] [New Thread 515 (tid 63244397)] [New inferior 2 (process 10813892)] Hello from Parent! [New inferior 3 (process 19005888)] Hello from Parent! Thread 1.1 received signal SIGINT, Interrupt. 0xd0611d70 in _p_nsleep () from /usr/lib/libpthread.a(_shr_xpg5.o) (gdb) info threads Id Target Id Frame * 1.1 Thread 1 (tid 66062355) ([running]) 0xd0611d70 in _p_nsleep () from /usr/lib/libpthread.a(_shr_xpg5.o) 1.2 Thread 258 (tid 75565441) ([running]) thread_function (arg=0x0) at //gdb_tests/multi-thread-fork.c:50 1.3 Thread 515 (tid 63244397) ([running]) thread_function (arg=0x0) at //gdb_tests/multi-thread-fork.c:50 2.1 Thread 515 (tid 32113089) ([running]) 0xd0610df0 in _sigsetmask () from /usr/lib/libpthread.a(_shr_xpg5.o) 3.1 Thread 258 (tid 64489699) ([running]) 0xd0610df0 in _sigsetmask () from /usr/lib/libpthread.a(_shr_xpg5.o) (gdb) q A debugging session is active. --- gdb/aix-thread.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gdb/aix-thread.c b/gdb/aix-thread.c index c04a56ea342..327f5607d45 100644 --- a/gdb/aix-thread.c +++ b/gdb/aix-thread.c @@ -859,7 +859,8 @@ sync_threadlists (pid_t pid) { aix_thread_info *priv = get_aix_thread_info (it); if (in_queue_threads.count (priv->pdtid) == 0 - && in_thread_list (proc_target, it->ptid)) + && in_thread_list (proc_target, it->ptid) + && pid == it->ptid.pid ()) { delete_thread (it); data->exited_threads.insert (priv->pdtid);