Details
-
Bug
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
proton-c-0.35.0
-
None
-
None
Description
./qpidTest.bash script:
#!/usr/bin/env bash
function main() {
# Display Linux distro
echo "Linux distro:"
cat /etc/release
echo
# Display Linux version
echo "Linux version:"
cat /proc/version
echo
# Display Python 3 version
echo "Python3 version:"
python3 --version
echo
# Display C++ Qpid qpidd broker version
echo "C++ Qpid qpidd broker version:"
qpidd --version
echo
echo "Run of Qpid Python 3 example broker and helloworld_blocking scripts:"
# Start and background Python 3 example Qpid broker
python3 ~/Downloads/Qpid_Proton_0.35.0/Proton_Python_Examples/broker.py &
local brokerPid=${!}
# Allow some time for Python 3 example Qpid broker to get up and running
sleep 1
# Run helloworld_blocking.py (note no error, receiver.accept() performs as expected)
if [[ "Hello World!" == $(python3 ~/Downloads/Qpid_Proton_0.35.0/Proton_Python_Examples/helloworld_blocking.py) ]]; then
echo "Completed without error"
else
echo "Command 'python3 ~/Downloads/Qpid_Proton_0.35.0/Proton_Python_Examples/helloworld_blocking.py' failed"
fi
# Stop background Python 3 example Qpid broker
kill ${brokerPid}
echo
echo "Run of C++ Qpid qpidd broker and helloworld_blocking script:"
# Start and background C++ Qpid qpidd broker
qpidd &
brokerPid=${!}
# Allow some time for C++ Qpid qpidd broker to get up and running
sleep 1
# Add exchange topic 'examples'
qpid-config add exchange topic examples '*' || {
echo "Command 'qpid-config add exchange topic examples '*'' failed"
# Run same helloworld_blocking.py (note error, receiver.accept() fails with 'IndexError: pop from an empty deque')
# If 'receiver.accept()' is commented out from helloworld_blocking.py, command succeeds and returns 'Hello World!'
# but message is 'leaked' and/or stored/queued awaiting acceptance
if [[ "Hello World!" == $(python3 ~/Downloads/Qpid_Proton_0.35.0/Proton_Python_Examples/helloworld_blocking.py || echo "${?}") ]]; then
echo "Completed without error"
else
echo "'python3 ~/Downloads/Qpid_Proton_0.35.0/Proton_Python_Examples/helloworld_blocking.py' failed"
fi
# Stop background C++ Qpid qpidd broker
kill ${brokerPid}
}
main "${@}"
exit
./qpidTest.bash script run output:
[gmajszak@xxx-u-dev-wks20 ~]$ ./qpidTest.bash
Linux distro:
NAME="Red Hat Enterprise Linux Workstation"
VERSION="7.6 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VARIANT="Workstation"
VARIANT_ID="workstation"
VERSION_ID="7.6"
PRETTY_NAME="Red Hat Enterprise Linux Workstation 7.6 (Maipo)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.6:GA:workstation"
HOME_URL=https://www.redhat.com/
BUG_REPORT_URL=https://bugzilla.redhat.com/
REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.6
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="7.6"
Red Hat Enterprise Linux Workstation release 7.6 (Maipo)
Red Hat Enterprise Linux Workstation release 7.6 (Maipo)
cpe:/o:redhat:enterprise_linux:7.6:ga:workstation
Linux version:
Linux version 3.10.0-1160.45.1.el7.x86_64 (mockbuild@x86-vm-37.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Fri Sep 24 10:17:16 UTC 2021
Python3 version:
Python 3.6.8
C++ Qpid qpidd broker version:
qpidd (qpid-cpp) version 1.39.0
Run of Qpid Python 3 example broker and helloworld_blocking scripts:
Completed without error
Run of C++ Qpid qpidd broker and helloworld_blocking script:
2021-10-13 15:04:53 [Broker] notice Broker (pid=4832) start-up
2021-10-13 15:04:53 [Security] notice SSL plugin not enabled, you must set --ssl-cert-db to enable it.
2021-10-13 15:04:53 [Store] notice Linear Store: Store module initialized; store-dir=/home/gmajszak/.qpidd
2021-10-13 15:04:53 [Network] notice Listening on TCP/TCP6 port 5672
./qpidTest.bash: line 3: 4827 Terminated python3 ~/Downloads/Qpid_Proton_0.35.0/Proton_Python_Examples/broker.py
Traceback (most recent call last):
File "/home/gmajszak/Downloads/Qpid_Proton_0.35.0/Proton_Python_Examples/helloworld_blocking.py", line 32, in <module>
receiver.accept()
File "/usr/lib64/python3.6/site-packages/proton/_utils.py", line 248, in accept
self.settle(Delivery.ACCEPTED)
File "/usr/lib64/python3.6/site-packages/proton/_utils.py", line 283, in settle
self.fetcher.settle(state)
File "/usr/lib64/python3.6/site-packages/proton/_utils.py", line 192, in settle
delivery = self.unsettled.popleft()
IndexError: pop from an empty deque
'python3 ~/Downloads/Qpid_Proton_0.35.0/Proton_Python_Examples/helloworld_blocking.py' failed
2021-10-13 15:04:54 [Broker] notice Broker (pid=4832) shut-down
[gmajszak@xxx-u-dev-wks20 ~]$