bazel-contrib / bazel-contrib/rules_python

bazel_dep rules_python cause Tkinter xcb error

Fermée
#1,778 1 commentaire 1 réaction 0 personnes assignées Voir sur GitHub
need: upstream support type: toolchain
Langage dominant
Starlark
Étoiles
688
Forks
721
Merge moyen
15 h 7 min
PR mergées (30 j)
76

Description

# 🐞 bug report

### Affected Rule

The issue is caused by the rule:
`py_binary`

### Is this a regression?

previous rules_python not work, for example 0.28.0

### Description

use `bazel_dep` `rules_python` cause Tkinter xcb error
```
$ bazel run //app:app
INFO: Analyzed target //app:app (75 packages loaded, 2984 targets configured).
INFO: Found 1 target...
Target //app:app up-to-date:
bazel-bin/app/app
INFO: Elapsed time: 0.363s, Critical Path: 0.05s
INFO: 5 processes: 5 internal.
INFO: Build completed successfully, 5 total actions
INFO: Running command line: bazel-bin/app/app
[xcb] Unknown sequence number while appending request
[xcb] You called XInitThreads, this is not your fault
[xcb] Aborting, sorry about that.
python3: ../../src/xcb_io.c:157: append_pending_request: Assertion `!xcb_xlib_unknown_seq_number' failed.
Aborted (core dumped)
```

`MODULE.bazel`
```
bazel_dep(name = "rules_python", version = "0.31.0")
```

`app.py`
```
import ctypes
x11 = ctypes.cdll.LoadLibrary("libX11.so")
x11.XInitThreads()

import tkinter as tk

app = tk.Tk()
button = tk.Button(app, text="Press me")
button.pack()
app.mainloop()

```

## 🔬 Minimal Reproduction

you can clone my repo to reproduce issue
https://github.com/redheli/bazel_issue_reproduce

## 🔥 Exception or Error



[xcb] Unknown sequence number while appending request
[xcb] You called XInitThreads, this is not your fault
[xcb] Aborting, sorry about that.
python3: ../../src/xcb_io.c:157: append_pending_request: Assertion `!xcb_xlib_unknown_seq_number' failed.
Aborted (core dumped)

## 🌍 Your Environment

**Operating System:**

  

$ uname -a
Linux max-ga503rm 5.19.0-40-generic #41~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 31 16:00:14 UTC 2 x86_64 x86_64 x86_64 GNU/Linux


**Output of `bazel version`:**

  

$ bazel --version
bazel 7.0.2

**Rules_python version:**

  

0.31.0

**Anything else relevant?**

workaround is to use `--noenable_bzlmod` , but it is not an option for my project.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par MODULE.bazel et app.py dans la reproduction minimale liée, puis exécutez `bazel run //app:app` avec rules_python 0.31.0 et `--noenable_bzlmod` à des fins de comparaison. Suivez le lancement de `py_binary` sous bazel_dep et confirmez que le correctif empêche l'abandon XCB de Tkinter tout en préservant le démarrage normal de l'application.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
build-system
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.