[Gambas-bugtracker] Bug #2388: writing large data string to pipe causes gambas app to hang

bugtracker at gambaswiki.org bugtracker at gambaswiki.org
Fri Oct 29 22:57:44 CEST 2021


http://gambaswiki.org/bugtracker/edit?object=BUG.2388&from=L21haW4-

Brian G reported a new bug.

Summary
-------

writing large data string to pipe causes gambas app to hang

Type             : Bug
Priority         : High
Gambas version   : Master
Product          : Language


Description
-----------

When writing to and reading from a process like this simple example,

myprocess = exec ["tr","[a-z]","[A-Z]"] for read write as "mytask"
write #myprocess, bigbuffer, bigbuffer.len
The write blocks and no events happen after that
 even if myprocess.blocking = false is set

If I write a block of data larger that about 48k or so it seems.. may be random
the write will block

If I brake it down to smaller chunks with a flush and wait it happens less often..

Is there a way to return a 'would block error' when the blocking is false,
if the write would create a blocking call? 

I have attached a program that this happens with.


System information
------------------

[System]
Gambas=3.16.90 08d21b5d7 (master)
OperatingSystem=Linux
Kernel=5.11.0-38-generic
Architecture=x86_64
Distribution=Linux Mint 20.2 Uma
Desktop=MATE
Font=Ubuntu,10
Scale=7
Theme=mint-y
Language=en_US.UTF-8
Memory=13946M

[Libraries]
Cairo=libcairo.so.2.11600.0
Curl=libcurl.so.4.6.0
DBus=libdbus-1.so.3.19.11
GDK2=libgdk-x11-2.0.so.0.2400.32
GDK3=libgdk-3.so.0.2404.16
GStreamer=libgstreamer-1.0.so.0.1602.0
GTK+2=libgtk-x11-2.0.so.0.2400.32
GTK+3=libgtk-3.so.0.2404.16
OpenGL=libGL.so.1.7.0
Poppler=libpoppler.so.97.0.0
QT5=libQt5Core.so.5.12.8
SDL=libSDL-1.2.so.0.11.4
SQLite=libsqlite3.so.0.8.6

[Environment]
COMPIZ_CONFIG_PROFILE=mint
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-nhIaYGN8YS,guid=0e8066c7caf56f3100ca0bc46179baef
DISPLAY=:50
EDITOR=/usr/bin/nano
GB_GUI=gb.gtk3
GIO_LAUNCHED_DESKTOP_FILE_PID=2033606
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
GTK_MODULES=gail:atk-bridge
GTK_OVERLAY_SCROLLING=0
HOME=<home>
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
LD_LIBRARY_PATH=:/usr/local/easysoft/access:/usr/local/easysoft/lib
LIBVIRT_DEFAULT_URI=qemu:///system
LOGNAME=<user>
MATE_DESKTOP_SESSION_ID=this-is-deprecated
MOTD_SHOWN=pam
PATH=<home>/bin:<home>/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
PULSE_CLIENTCONFIG=<home>/.x2go/C-<user>-50-1635367654_stDMATE_dp24/.pulse-client.conf
PWD=<home>
QT_ACCESSIBILITY=1
QT_AUTO_SCREEN_SCALE_FACTOR=0
QT_GRAPHICSSYSTEM=native
QT_LOGGING_RULES=*.debug=false
QT_QPA_PLATFORMTHEME=qt5ct
QT_SCALE_FACTOR=1
SESSION_MANAGER=local/<hostname>:@/tmp/.ICE-unix/881086,unix/<hostname>:/tmp/.ICE-unix/881086
SHELL=/usr/bin/gsh
SHLVL=1
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
SSH_CLIENT=73.66.0.38 39446 22
SSH_CONNECTION=73.66.0.38 39446 192.168.250.8 22
STARTUP=/usr/bin/im-launch /usr/bin/env LD_LIBRARY_PATH=:/usr/local/easysoft/access:/usr/local/easysoft/lib mate-session
TERM=xterm
TZ=:/etc/localtime
USER=<user>
X2GO_AGENT_PID=880206
X2GO_SESSION=<user>-50-1635367654_stDMATE_dp24
XAUTHORITY=<home>/.Xauthority
XDG_CURRENT_DESKTOP=MATE
XDG_DATA_DIRS=<home>/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
XDG_RUNTIME_DIR=/run/user/1000
XDG_SESSION_CLASS=user
XDG_SESSION_ID=140
XDG_SESSION_TYPE=tty
XSESSION_EXEC=mate-session




More information about the Bugtracker mailing list