From: Hugh Daschbach <hugh@ccss.com>
To: Michael Albinus <michael.albinus@gmx.de>
Cc: 43251@debbugs.gnu.org
Subject: bug#43251: 27.1; DBus signals error when GetManagedObjects received while waiting for dbus-call-method
Date: Mon, 28 Sep 2020 16:36:19 -0700 [thread overview]
Message-ID: <87d0258oek.fsf@ccss.com> (raw)
In-Reply-To: <87mu22dp05.fsf@gmx.de>
[-- Attachment #1: Type: text/plain, Size: 441 bytes --]
Michael Albinus writes:
> Hugh Daschbach <hugh@ccss.com> writes:
>
> Hi Hugh,
>
>> But if that GetManagedObjects method call is received while a
>> dbus-call-method request is waiting for a reply message, processing the
>> GetManagedObjects request signals an error.
>
> Thanks, I will investigate.
I believe this issue is fixed on master. The attached test fails on
27.1 and does not fail on master.
Feel free to close.
Thanks,
Hugh
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Test case for dbus-call-method reentry. --]
[-- Type: text/x-patch, Size: 2074 bytes --]
From 51eabb23d839827beccad86ba3755d1fc32c20b3 Mon Sep 17 00:00:00 2001
From: Hugh Daschbach <hdasch@fastmail.com>
Date: Mon, 28 Sep 2020 14:34:54 -0700
Subject: [PATCH 4/4] Add D-Bus method call reentry test.
* test/lisp/net/dbus-tests.el (dbus--tests-method-reentry-handler): New defun.
(dbus-test04-method-reentry): New test.
---
test/lisp/net/dbus-tests.el | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/test/lisp/net/dbus-tests.el b/test/lisp/net/dbus-tests.el
index 308f22eb6cc..a4305b5942a 100644
--- a/test/lisp/net/dbus-tests.el
+++ b/test/lisp/net/dbus-tests.el
@@ -581,6 +581,39 @@ dbus-test04-register-method
;; Cleanup.
(dbus-unregister-service :session dbus--test-service)))
+(defun dbus--test-method-reentry-handler (&rest args)
+ "Method handler for `dbus-test04-method-reentry'."
+ (dbus-get-all-managed-objects :session dbus--test-service dbus--test-path)
+ 42)
+
+(ert-deftest dbus-test04-method-reentry ()
+ "Check receiving method call while awaiting response.
+Ensure that incoming method calls are handled when call to `dbus-call-method'
+is in progress."
+ (skip-unless dbus--test-enabled-session-bus)
+ (dbus-ignore-errors (dbus-unregister-service :session dbus--test-service))
+
+ (unwind-protect
+ (let ((method "Rentry"))
+ (should
+ (equal
+ (dbus-register-method
+ :session dbus--test-service dbus--test-path
+ dbus--test-interface method #'dbus--test-method-reentry-handler)
+ `((:method :session ,dbus--test-interface ,method)
+ (,dbus--test-service ,dbus--test-path
+ dbus--test-method-reentry-handler))))
+
+ (should
+ (=
+ (dbus-call-method
+ :session dbus--test-service dbus--test-path
+ dbus--test-interface method)
+ 42)))
+
+ ;; Cleanup.
+ (dbus-unregister-service :session dbus--test-service)))
+
(ert-deftest dbus-test04-call-method-timeout ()
"Verify `dbus-call-method' request timeout."
:tags '(:expensive-test)
--
2.28.0
next prev parent reply other threads:[~2020-09-28 23:36 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-07 0:11 bug#43251: 27.1; DBus signals error when GetManagedObjects received while waiting for dbus-call-method Hugh Daschbach
2020-09-07 7:28 ` Michael Albinus
2020-09-28 23:36 ` Hugh Daschbach [this message]
2020-09-29 12:15 ` Michael Albinus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87d0258oek.fsf@ccss.com \
--to=hugh@ccss.com \
--cc=43251@debbugs.gnu.org \
--cc=michael.albinus@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.