-------- Message transféré -------- Sujet : [Gambas Bug Tracker] Bug #1196: Socket Lof returns 0 when data is available. Date : Thu, 05 Oct 2017 01:27:17 GMT De : bugtrac...@gambaswiki.org Pour : tmore...@ajm-software.com, g4m...@gmail.com http://gambaswiki.org/bugtracker/edit?object=BUG.1196&from=L21haW4- Tony MOREHEN reported a new bug. Summary ------- Socket Lof returns 0 when data is available. Type : Bug Priority : Medium Gambas version : Unknown Product : Unknown Description ----------- My Imap test program runs flawlessly when I do a direct read from the socket after sending a command. However the program locks when I try to queue messages from the server. I need to queue messages because I need to capture unexpected messages from the server, ie messages that are not replies to my command. I've tried two approaches to read messages from the server: the first uses the Socket_Read event, When the Read event is triggered, my code uses Readline to read from the Socket, until there is no more data waiting. After some number of lines, the Read event is no longer triggered even though the server has sent that data. The second approach uses polling to check if data is available. every 0.5 seconds, a timer event is triggered. My code then checks the length of the socket stream and, if non-zero uses Readline to read until no more data is available. After a similar number of lines to the first approach, stream length stays a zero even though the server has sent the data. I suspect that there may be issues the Gambas code that reads Lof(). The Read event is triggered by a watch routine that is, essentially, an infinite comprised of a wait delay followed by a Lof test. If Lof > 0 then the Read event is raised. Lof is then common to both approaches and so is the likely culprit. I know that the server has sent the lost data, because I am using a Dummy server that sends the correct answers to to the Imap test program. The two programs connect over localhost so network errors can be discounted. I've attached the Imap test program and the dummy server. System information ------------------ [System] Gambas=3.9.90 r8018 OperatingSystem=Linux Kernel=4.8.15-1-MANJARO Architecture=x86_64 Distribution=Manjaro Linux Desktop=XFCE Theme=Gtk Language=en_CA.utf8 Memory=3947M [Libraries] Cairo=libcairo.so.2.11400.8 Curl=libcurl.so.4.4.0 DBus=libdbus-1.so.3.14.9 GStreamer=libgstreamer-0.10.so.0.30.0 GStreamer=libgstreamer-1.0.so.0.1002.0 GTK+2=libgtk-x11-2.0.so.0.2400.31 GTK+3=libgtk-3.so.0.2200.5 OpenGL=libGL.so.1.2.0 Poppler=libpoppler.so.66.0.0 QT4=libQtCore.so.4.8.7 QT5=libQt5Core.so.5.7.1 SDL=libSDL-1.2.so.0.11.4 SQLite=libsqlite3.so.0.8.6 [Environment] DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus DESKTOP_SESSION=xfce DISPLAY=:0.0 GB_GUI=gb.qt4 GDMSESSION=xfce GLADE_CATALOG_PATH=: GLADE_MODULE_PATH=: GLADE_PIXMAP_PATH=: GTK2_RC_FILES=<home>/.gtkrc-2.0 GTK_MODULES=canberra-gtk-module HOME=<home> LANG=en_CA.utf8 LC_ADDRESS=en_CA.UTF-8 LC_IDENTIFICATION=en_CA.UTF-8 LC_MEASUREMENT=en_CA.UTF-8 LC_MONETARY=en_CA.UTF-8 LC_NAME=en_CA.UTF-8 LC_NUMERIC=en_CA.UTF-8 LC_PAPER=en_CA.UTF-8 LC_TELEPHONE=en_CA.UTF-8 LC_TIME=en_CA.UTF-8 LOGNAME=<user> MAIL=/var/spool/mail/<user> MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl PWD=<home> QT_QPA_PLATFORMTHEME=qt5ct SAL_USE_VCLPLUGIN=gtk SESSION_MANAGER=local/<hostname>:@/tmp/.ICE-unix/9931,unix/<hostname>:/tmp/.ICE-unix/9931 SHELL=/bin/bash SHLVL=2 SSH_AGENT_PID=9936 SSH_AUTH_SOCK=/tmp/ssh-bUdChQqs4Zo0/agent.9935 TZ=:/etc/localtime USER=<user> XAUTHORITY=<home>/.Xauthority XDG_CONFIG_DIRS=/etc/xdg XDG_CURRENT_DESKTOP=XFCE XDG_DATA_DIRS=/usr/local/share:/usr/share XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/<user> XDG_MENU_PREFIX=xfce- XDG_RUNTIME_DIR=/run/user/1000 XDG_SEAT=seat0 XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0 XDG_SESSION_DESKTOP=xfce XDG_SESSION_ID=c4 XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1 XDG_SESSION_TYPE=x11 XDG_VTNR=7 _=/usr/bin/gambas3 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user
[Gambas-user] Fwd: [Gambas Bug Tracker] Bug #1196: Socket Lof returns 0 when data is available.
Benoît Minisini via Gambas-user Wed, 04 Oct 2017 18:31:54 -0700
- [Gambas-user] Fwd: [Gambas Bug Tracker] B... Benoît Minisini via Gambas-user
- [Gambas-user] Fwd: [Gambas Bug Track... Benoît Minisini via Gambas-user
- [Gambas-user] Fwd: [Gambas Bug Track... Benoît Minisini via Gambas-user
- [Gambas-user] Fwd: [Gambas Bug Track... Benoît Minisini via Gambas-user
- Re: [Gambas-user] Fwd: [Gambas B... Tony Morehen
- Re: [Gambas-user] Fwd: [Gamb... Benoît Minisini via Gambas-user
- [Gambas-user] Fwd: [Gambas Bug Track... Benoît Minisini via Gambas-user
- [Gambas-user] Fwd: [Gambas Bug Track... Benoît Minisini via Gambas-user