Subject: bug#57077: closed (Re: bug#57077: guix-jupyter fails a test)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 08 Sep 2022 19:36:01 +0000

Your bug report

#57077: guix-jupyter fails a test

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
57077: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=57077
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#57077: guix-jupyter fails a test
From: Ludovic Courtès <[email-masked]>
To: Andreas Enge <[email-masked]>
Cc: Marius Bakke <[email-masked]>, [email-masked]
Date: Thu, 08 Sep 2022 21:35:42 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Ludovic Courtès <[email-masked]> skribis:

> Andreas Enge <[email-masked]> skribis:
>
>> guix-jupyter currently fails to build with the error message below. While I
>> noticed it when updating python-sympy, the problem was already present
>> before.
>
> It looks like the Jupyter protocol changed, probably in
> d54b8754fdba52d89aafaaf80b6c8e89bcea92bd, which was merged with the
> latest ‘staging’.

To my surprise, it looks like running tests sequentially as Marius did
in d09f3f82b84c850a9639ec80af19ba3918b63368 solves the problem.  That’s
good news.  :-)

Thanks,
Ludo’.

Subject: guix-jupyter fails a test
From: Andreas Enge <[email-masked]>
To: [email-masked]
Date: Tue, 9 Aug 2022 15:23:57 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

guix-jupyter currently fails to build with the error message below. While I
noticed it when updating python-sympy, the problem was already present
before.

Andreas

test-name: execute_request
location: /tmp/guix-build-guix-jupyter-0.2.2.drv-0/source/tests/kernels.scm:100
source:
+ (test-equal
+   "execute_request"
+   42
+   (let ((request
+           (message
+             (header "execute_request" "luser" "12345")
+             (scm->json-string
+               (execute-request->json
+                 (execute-request (code "40 + 2\n")))))))
+     (send-message %kernel request)
+     (let* ((replies
+              (unfold
+                (cut > <> 4)
+                (lambda (_) (read-message %kernel 10000))
+                #{1+}#
+                0)))
+       (define (type-predicate type)
+         (lambda (message)
+           (string=? (message-type message) type)))
+       (and (every message? (pk 'replies replies))
+            (match (filter (type-predicate "status") replies)
+                   ((busy idle)
+                    (and (eq? 'busy
+                              (kernel-status-execution-state
+                                (json->kernel-status (message-content busy))))
+                         (eq? 'idle
+                              (kernel-status-execution-state
+                                (json->kernel-status (message-content idle))))
+                         (equal?
+                           (message-parent-header busy)
+                           (message-header request))
+                         (equal?
+                           (message-parent-header idle)
+                           (message-header request)))))
+            (let ((input (find (type-predicate "execute_input") replies)))
+              (equal?
+                (message-parent-header input)
+                (message-header request)))
+            (let ((reply (find (type-predicate "execute_reply") replies)))
+              (equal?
+                (message-parent-header reply)
+                (message-header request)))
+            (let ((result
+                    (find (type-predicate "execute_result") replies)))
+              (and (equal?
+                     (message-parent-header result)
+                     (message-header request))
+                   (let* ((content
+                            (json-string->scm (message-content result)))
+                          (data (assoc-ref content "data"))
+                          (text (assoc-ref data "text/plain")))
+                     (string->number text))))))))

;;; (replies (#<<message> header: #<<header> id: "5103841f-98e1ea45964e58d9ba214dc5_900_3" user: "username" session: "5103841f-98e1ea45964e58d9ba214dc5" date: "2022-08-09T13:21:24.436017Z" type: "kernel_info_reply" version: "5.3" sender: #f> parent-header: #<<header> id: "7b136e32ddcbe2e226edffb116a4fca9" user: "luser" session: "12345" date: "2022-08-09T13:21:24.298532000" type: "kernel_info_request" version: "5.0" sender: #f> metadata: "{}" content: "{\"status\": \"ok\", \"protocol_version\": \"5.3\", \"implementation\": \"ipython\", \"implementation_version\": \"8.2.0\", \"language_info\": {\"name\": \"python\", \"version\": \"3.9.9\", \"mimetype\": \"text/x-python\", \"codemirror_mode\": {\"name\": \"ipython\", \"version\": 3}, \"pygments_lexer\": \"ipython3\", \"nbconvert_exporter\": \"python\", \"file_extension\": \".py\"}, \"banner\": \"Python 3.9.9 (main, Jan  1 1970, 00:00:01) \\nType 'copyright', 'credits' or 'license' for more information\\nIPython 8.2.0 -- An enhanced Interactive Python. Type '?' for help.\\n\", \"help_links\": [{\"text\": \"Python Reference\", \"url\": \"https://docs.python.org/3.9\"}, {\"text\": \"IPython Reference\", \"url\": \"https://ipython.org/documentation.html\"}, {\"text\": \"NumPy Reference\", \"url\": \"https://docs.scipy.org/doc/numpy/reference/\"}, {\"text\": \"SciPy Reference\", \"url\": \"https://docs.scipy.org/doc/scipy/reference/\"}, {\"text\": \"Matplotlib Reference\", \"url\": \"https://matplotlib.org/contents.html\"}, {\"text\": \"SymPy Reference\", \"url\": \"http://docs.sympy.org/latest/index.html\"}, {\"text\": \"pandas Reference\", \"url\": \"https://pandas.pydata.org/pandas-docs/stable/\"}]}" buffers: ()> #<<message> header: #<<header> id: "5103841f-98e1ea45964e58d9ba214dc5_900_4" user: "username" session: "5103841f-98e1ea45964e58d9ba214dc5" date: "2022-08-09T13:21:24.438407Z" type: "status" version: "5.3" sender: #vu8(107 101 114 110 101 108 46 100 53 55 102 102 101 102 53 45 48 98 102 50 45 52 97 57 102 45 97 99 50 52 45 53 53 100 54 97 97 100 102 53 56 52 97 46 115 116 97 116 117 115)> parent-header: #<<header> id: "7b136e32ddcbe2e226edffb116a4fca9" user: "luser" session: "12345" date: "2022-08-09T13:21:24.298532000" type: "kernel_info_request" version: "5.0" sender: #f> metadata: "{}" content: "{\"execution_state\": \"idle\"}" buffers: ()> #<<message> header: #<<header> id: "5103841f-98e1ea45964e58d9ba214dc5_900_5" user: "username" session: "5103841f-98e1ea45964e58d9ba214dc5" date: "2022-08-09T13:21:24.470543Z" type: "status" version: "5.3" sender: #vu8(107 101 114 110 101 108 46 100 53 55 102 102 101 102 53 45 48 98 102 50 45 52 97 57 102 45 97 99 50 52 45 53 53 100 54 97 97 100 102 53 56 52 97 46 115 116 97 116 117 115)> parent-header: #<<header> id: "b101b0c27f41055fc03178fdce86a4f6" user: "luser" session: "12345" date: "2022-08-09T13:21:24.465152000" type: "execute_request" version: "5.0" sender: #f> metadata: "{}" content: "{\"execution_state\": \"busy\"}" buffers: ()> #<<message> header: #<<header> id: "5103841f-98e1ea45964e58d9ba214dc5_900_6" user: "username" session: "5103841f-98e1ea45964e58d9ba214dc5" date: "2022-08-09T13:21:24.471181Z" type: "execute_input" version: "5.3" sender: #vu8(107 101 114 110 101 108 46 100 53 55 102 102 101 102 53 45 48 98 102 50 45 52 97 57 102 45 97 99 50 52 45 53 53 100 54 97 97 100 102 53 56 52 97 46 101 120 101 99 117 116 101 95 105 110 112 117 116)> parent-header: #<<header> id: "b101b0c27f41055fc03178fdce86a4f6" user: "luser" session: "12345" date: "2022-08-09T13:21:24.465152000" type: "execute_request" version: "5.0" sender: #f> metadata: "{}" content: "{\"code\": \"40 + 2\\n\", \"execution_count\": 1}" buffers: ()> #<<message> header: #<<header> id: "5103841f-98e1ea45964e58d9ba214dc5_900_7" user: "username" session: "5103841f-98e1ea45964e58d9ba214dc5" date: "2022-08-09T13:21:24.497586Z" type: "execute_result" version: "5.3" sender: #vu8(107 101 114 110 101 108 46 100 53 55 102 102 101 102 53 45 48 98 102 50 45 52 97 57 102 45 97 99 50 52 45 53 53 100 54 97 97 100 102 53 56 52 97 46 101 120 101 99 117 116 101 95 114 101 115 117 108 116)> parent-header: #<<header> id: "b101b0c27f41055fc03178fdce86a4f6" user: "luser" session: "12345" date: "2022-08-09T13:21:24.465152000" type: "execute_request" version: "5.0" sender: #f> metadata: "{}" content: "{\"data\": {\"text/plain\": \"42\"}, \"metadata\": {}, \"execution_count\": 1}" buffers: ()>))
expected-value: 42
actual-value: #f
result: FAIL

error: in phase 'check': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("check" "-j" "4") exit-status: 2 term-signal: #f stop-signal: #f>
phase `check' failed after 10.7 seconds
command "make" "check" "-j" "4" failed with status 2
builder for `/gnu/store/i1r5p6g0k3a98316x3s2yrpx9kwjq9vn-guix-jupyter-0.2.2.drv' failed with exit code 1