* bug#60626: 30.0.50; `buffer-live-p' sometimes returns t on killed buffers
@ 2023-01-07 12:44 Ihor Radchenko
2023-01-07 13:42 ` Eli Zaretskii
0 siblings, 1 reply; 6+ messages in thread
From: Ihor Radchenko @ 2023-01-07 12:44 UTC (permalink / raw)
To: 60626
Hi,
We are recently experiencing test failures using Emacs 28, Emacs 27, and
Emacs 26 on CI (non-interactively):
https://builds.sr.ht/~bzg/job/918602
2 unexpected results:
FAILED ob-octave/graphics-file ((should-not (buffer-live-p (get-buffer "*Org-Babel Error Output*"))) :form (buffer-live-p #<killed buffer>) :value t)
FAILED ob-octave/graphics-file-space ((should-not (buffer-live-p (get-buffer "*Org-Babel Error Output*"))) :form (buffer-live-p #<killed buffer>) :value t)
Note that (buffer-live-p #<killed buffer>) returns non-nil, which is
unexpected.
I am also able to reproduce locally using rake + podman:
See https://git.sr.ht/~bzg/org-mode-tests/:
1. cd /path/to/org-mode-tests
2. ln -s /path/to/org ./org-mode
3. cd local
4. rake test:debian:emacs28
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#60626: 30.0.50; `buffer-live-p' sometimes returns t on killed buffers
2023-01-07 12:44 bug#60626: 30.0.50; `buffer-live-p' sometimes returns t on killed buffers Ihor Radchenko
@ 2023-01-07 13:42 ` Eli Zaretskii
2023-01-07 15:01 ` Ihor Radchenko
0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2023-01-07 13:42 UTC (permalink / raw)
To: Ihor Radchenko; +Cc: 60626
> From: Ihor Radchenko <yantar92@posteo.net>
> Date: Sat, 07 Jan 2023 12:44:47 +0000
>
> We are recently experiencing test failures using Emacs 28, Emacs 27, and
> Emacs 26 on CI (non-interactively):
What about Emacs 29? Or is this report only about versions 28 and
older? In the latter case, why would it suddenly start failing, if
those versions are no longer being developed?
> https://builds.sr.ht/~bzg/job/918602
>
> 2 unexpected results:
> FAILED ob-octave/graphics-file ((should-not (buffer-live-p (get-buffer "*Org-Babel Error Output*"))) :form (buffer-live-p #<killed buffer>) :value t)
> FAILED ob-octave/graphics-file-space ((should-not (buffer-live-p (get-buffer "*Org-Babel Error Output*"))) :form (buffer-live-p #<killed buffer>) :value t)
>
> Note that (buffer-live-p #<killed buffer>) returns non-nil, which is
> unexpected.
Are you sure this is the right interpretation?
Anyway, is there any hope for a more self-contained recipe, which I
could try on my system without too much ado?
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#60626: 30.0.50; `buffer-live-p' sometimes returns t on killed buffers
2023-01-07 13:42 ` Eli Zaretskii
@ 2023-01-07 15:01 ` Ihor Radchenko
2023-01-09 10:21 ` Michael Heerdegen
0 siblings, 1 reply; 6+ messages in thread
From: Ihor Radchenko @ 2023-01-07 15:01 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 60626
Eli Zaretskii <eliz@gnu.org> writes:
>> We are recently experiencing test failures using Emacs 28, Emacs 27, and
>> Emacs 26 on CI (non-interactively):
>
> What about Emacs 29? Or is this report only about versions 28 and
> older? In the latter case, why would it suddenly start failing, if
> those versions are no longer being developed?
The failures are after we added `buffer-live-p' into assert form:
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?h=bugfix&id=41ebc2e40c33080a47cebb2507f038058b862655
Unfortunately, we don't have CI configuration for Emacs 29 now.
>> https://builds.sr.ht/~bzg/job/918602
>>
>> 2 unexpected results:
>> FAILED ob-octave/graphics-file ((should-not (buffer-live-p (get-buffer "*Org-Babel Error Output*"))) :form (buffer-live-p #<killed buffer>) :value t)
>> FAILED ob-octave/graphics-file-space ((should-not (buffer-live-p (get-buffer "*Org-Babel Error Output*"))) :form (buffer-live-p #<killed buffer>) :value t)
>>
>> Note that (buffer-live-p #<killed buffer>) returns non-nil, which is
>> unexpected.
>
> Are you sure this is the right interpretation?
I think so. The full backtrace is
Test ob-octave/graphics-file backtrace:
signal(ert-test-failed (((should-not (buffer-live-p (get-buffer "*Or
ert-fail(((should-not (buffer-live-p (get-buffer "*Org-Babel Error O
(if (not (unwind-protect (setq value-1507 (apply fn-1505 args-1506))
(let (form-description-1509) (if (not (unwind-protect (setq value-15
(let ((value-1507 'ert-form-evaluation-aborted-1508)) (let (form-des
(let* ((fn-1505 #'buffer-live-p) (args-1506 (condition-case err (let
(progn (org-mode) (let ((point (string-match "<point>" inside-text))
(unwind-protect (progn (org-mode) (let ((point (string-match "<point
(save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn
(let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current
(let ((inside-text (if (stringp (format "#+begin_src octave :results
(unwind-protect (let ((inside-text (if (stringp (format "#+begin_src
(let ((file (make-temp-file "test-ob-octave-" nil ".png"))) (unwind-
(let ((lexical-binding t)) (if (get-buffer "*Org-Babel Error Output*
(closure (t) nil (let ((lexical-binding t)) (if (get-buffer "*Org-Ba
ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
ert-run-test(#s(ert-test :name ob-octave/graphics-file :documentatio
ert-run-or-rerun-test(#s(ert--stats :selector "\\(org\\|ob\\|ox\\...
ert-run-tests("\\(org\\|ob\\|ox\\)" #f(compiled-function (event-type
ert-run-tests-batch("\\(org\\|ob\\|ox\\)")
ert-run-tests-batch-and-exit("\\(org\\|ob\\|ox\\)")
(let ((org-id-track-globally t) (org-test-selector (if org-test-sele
org-test-run-batch-tests("\\(org\\|ob\\|ox\\)")
command-line-1(("--load" "/home/build/.emacs.d/init.el" "--eval" "(s
command-line()
normal-top-level()
Test ob-octave/graphics-file condition:
(ert-test-failed
((should-not
(buffer-live-p
(get-buffer "*Org-Babel Error Output*")))
:form
(buffer-live-p #<killed buffer>)
:value t))
FAILED 164/1187 ob-octave/graphics-file (0.257630 sec)
> Anyway, is there any hope for a more self-contained recipe, which I
> could try on my system without too much ado?
Unfortunately, no. Tests are not failing for me locally, so the
container setup appears to be part of the recipe.
I was only able to reproduce locally running the container.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#60626: 30.0.50; `buffer-live-p' sometimes returns t on killed buffers
2023-01-07 15:01 ` Ihor Radchenko
@ 2023-01-09 10:21 ` Michael Heerdegen
2023-01-11 11:08 ` Ihor Radchenko
0 siblings, 1 reply; 6+ messages in thread
From: Michael Heerdegen @ 2023-01-09 10:21 UTC (permalink / raw)
To: Ihor Radchenko; +Cc: Eli Zaretskii, 60626
Ihor Radchenko <yantar92@posteo.net> writes:
> >> Note that (buffer-live-p #<killed buffer>) returns non-nil, which is
> >> unexpected.
> >
> > Are you sure this is the right interpretation?
>
> I think so.
Couldn't it be that the buffer had been live when the form had been
evaluated, but killed when the form had been printed (later)? The
information you posted does not necessarily imply that `buffer-live-p'
ever returned t when called with a killed buffer.
Michael.
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#60626: 30.0.50; `buffer-live-p' sometimes returns t on killed buffers
2023-01-09 10:21 ` Michael Heerdegen
@ 2023-01-11 11:08 ` Ihor Radchenko
2023-01-11 12:50 ` Eli Zaretskii
0 siblings, 1 reply; 6+ messages in thread
From: Ihor Radchenko @ 2023-01-11 11:08 UTC (permalink / raw)
To: Michael Heerdegen; +Cc: Eli Zaretskii, 60626
Michael Heerdegen <michael_heerdegen@web.de> writes:
>> > Are you sure this is the right interpretation?
>>
>> I think so.
>
> Couldn't it be that the buffer had been live when the form had been
> evaluated, but killed when the form had been printed (later)? The
> information you posted does not necessarily imply that `buffer-live-p'
> ever returned t when called with a killed buffer.
This is likely true.
The test looks like
(unwind-protect
(org-test-with-temp-text
(format "#+begin_src octave :results file graphics :file %s
sombrero;
#+end_src"
file)
(org-babel-execute-src-block)
(should (search-forward (format "[[file:%s]]" file) nil nil))
(should (file-readable-p file))
(should-not (buffer-live-p (get-buffer "*Org-Babel Error Output*"))))
;; clean-up
(delete-file file)
(when (get-buffer "*Org-Babel Error Output*")
(kill-buffer "*Org-Babel Error Output*")))
So, unwind fallback forms are likely executed.
Thanks for the pointer!
I think this bug report can then be closed.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#60626: 30.0.50; `buffer-live-p' sometimes returns t on killed buffers
2023-01-11 11:08 ` Ihor Radchenko
@ 2023-01-11 12:50 ` Eli Zaretskii
0 siblings, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2023-01-11 12:50 UTC (permalink / raw)
To: Ihor Radchenko; +Cc: michael_heerdegen, 60626-done
> From: Ihor Radchenko <yantar92@posteo.net>
> Cc: Eli Zaretskii <eliz@gnu.org>, 60626@debbugs.gnu.org
> Date: Wed, 11 Jan 2023 11:08:04 +0000
>
> Michael Heerdegen <michael_heerdegen@web.de> writes:
>
> > Couldn't it be that the buffer had been live when the form had been
> > evaluated, but killed when the form had been printed (later)? The
> > information you posted does not necessarily imply that `buffer-live-p'
> > ever returned t when called with a killed buffer.
>
> This is likely true.
>
> The test looks like
>
> (unwind-protect
> (org-test-with-temp-text
> (format "#+begin_src octave :results file graphics :file %s
> sombrero;
> #+end_src"
> file)
> (org-babel-execute-src-block)
> (should (search-forward (format "[[file:%s]]" file) nil nil))
> (should (file-readable-p file))
> (should-not (buffer-live-p (get-buffer "*Org-Babel Error Output*"))))
> ;; clean-up
> (delete-file file)
> (when (get-buffer "*Org-Babel Error Output*")
> (kill-buffer "*Org-Babel Error Output*")))
>
> So, unwind fallback forms are likely executed.
>
> Thanks for the pointer!
>
> I think this bug report can then be closed.
Thanks, closing.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-01-11 12:50 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-07 12:44 bug#60626: 30.0.50; `buffer-live-p' sometimes returns t on killed buffers Ihor Radchenko
2023-01-07 13:42 ` Eli Zaretskii
2023-01-07 15:01 ` Ihor Radchenko
2023-01-09 10:21 ` Michael Heerdegen
2023-01-11 11:08 ` Ihor Radchenko
2023-01-11 12:50 ` Eli Zaretskii
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.