discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] catching unrecognized exception


From: Marcus Müller
Subject: Re: [Discuss-gnuradio] catching unrecognized exception
Date: Wed, 16 Apr 2014 11:55:38 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Nemanja,

ah that's interesting, I've tried and for me, it fails. Strange. I'm
going to investigate that.

However, if that syntax is ok, then I'm out of ideas. You're not
giving out all too much details, though. When excatly does this
exception occur? Does your block work at all? Does it work when
commenting out functionality? How about print "done this and that"
debugging? Do your two blocks share the same database connection (if
that's the case, are you doing multithreading correctly?)?

My only guess would still be that one of your except clauses throws an
Exception. Maybe "print message", if message = pmt.symbol_to_string()
failed?

By the way, "caught unrecognized exception" comes from the C++ domain,
it happens when there is an uncaught C++ exception, which might have
nothing to do with your executed python.

What you can do is run your program in a debugger, i.e.

$ gdb --args python your_python_flowgraph.py
...
(gdb)run
...
interrupt (ctrl-z), try to set a breakpoint at
gnuradio-runtime/include/gnuradio/thread/thread_body_wrapper.h:61 ,
then continue running your program
(gdb)cont
...
and see what happened prior to that call:
(gdb)bt


Greetings,
Marcus

On 16.04.2014 10:45, Nemanja Savic wrote:
> Hello again,
> 
> Marcus, you are right, my syntax is not any more correct but there
> is backwards compatibility. I initiated error on my own and
> everything works fine, so I would say there should be rather
> something more serious.
> 
> 
> On Tue, Apr 15, 2014 at 4:31 PM, Marcus Müller <address@hidden>
> wrote:
> 
> Hi Nemanja,
> 
> Simple explanation: You haven't fixed your syntax for the first
> except clause. Going back to my other post, it should read "except
> mdb.Error as e:", not "except mdb.Error, e".
> 
> Because you didn't do that, "e" is undefined in your except
> clause. This raises a NameError in your except clause, which
> doesn't get handled. Fix the except syntax.
> 
> Also, don't do system.exit() in a multithreaded application,
> unless you really know what you're doing. You'll end up with
> unfinished data, broken database commits and so on.
> 
> Greetings, Marcus
> 
> On 15.04.2014 15:40, Nemanja Savic wrote:
>>>> Hi again,
>>>> 
>>>> so, the exception appeared again. Just to remind: 
>>>> thread[thread-per-block[0]: <gr_block db_logger2 (65)>]:
>>>> caught unrecognized exception
>>>> 
>>>> I can't find what (65) means. This time complete block of
>>>> code was encapsulated by try and except but nothing was
>>>> caught.
>>>> 
>>>> Here is my code:
>>>> 
>>>> def handle_msg(self, msg): try: message = 
>>>> pmt.pmt_symbol_to_string(msg) msg_lines =
>>>> message.split('\n') sensor_id = msg_lines[0] vendor =
>>>> msg_lines[2] sensor_type = msg_lines[3] time = msg_lines[1]
>>>> querry = "INSERT INTO `%s`.`%s` (`id` ,`sens_id` ,`vendor`,
>>>> `sensor_type`, `det_id`) VALUES (NULL , '%s', '%s',
>>>> '%s','%s');" % (self._db_name, self._det_table, sensor_id,
>>>> vendor, sensor_type, self._id) cur = self._con.cursor() 
>>>> cur.execute(querry) except mdb.Error, e: print "Unexpected
>>>> error while trying to insert into table" print 50*'-' print
>>>> 50*'-' print "Error %d: %s" % (e.args[0],e.args[1])
>>>> sys.exit(1)
>>>> 
>>>> except: print 'msg handler exception' print 50*'-' print
>>>> message print msg_lines print 50*'-'
>>>> 
>>>> Except this function there is also constructor and
>>>> additional function for setting the database up (it is called
>>>> only in constructor). There is no work function as this block
>>>> nly receives messages and writes to database. Is there any
>>>> idea how can I catch this?
>>>> 
>>>> Thanx
>>>> 
>>>> 
>>>> 
>>>> On Thu, Mar 20, 2014 at 4:34 PM, Marcus Müller
>>>> <address@hidden> wrote:
>>>> 
>>>> Hi Nemanja,
>>>> 
>>>> your except syntax is wrong, most probably you wanted to use 
>>>> "except ExceptionType as e" instead, refer to 
>>>> http://docs.python.org/2/tutorial/errors.html
>>>> 
>>>> Anyway, have you tried surrounding all your handler code with
>>>> a try and catch not only the database related errors?
>>>> 
>>>> Greetings, Marcus
>>>> 
>>>> On 20.03.2014 15:58, Nemanja Savic wrote:
>>>>>>> Dear gnuradioers,
>>>>>>> 
>>>>>>> I would like to ask againi if somebody can help me 
>>>>>>> understand this: thread[thread-per-block[0]: <gr_block 
>>>>>>> db_logger2 (62)>]: caught unrecognized exception
>>>>>>> 
>>>>>>> I have two blocks of db_logger type and it looks like
>>>>>>> only one catch this unrecognized exception and another
>>>>>>> keeps working fine.
>>>>>>> 
>>>>>>> best and thank you
>>>>>>> 
>>>>>>> 
>>>>>>> On Mon, Mar 3, 2014 at 12:55 PM, Nemanja Savic 
>>>>>>> <address@hidden> wrote:
>>>>>>> 
>>>>>>>> Hi all guys,
>>>>>>>> 
>>>>>>>> I have a block which is responsible to receive
>>>>>>>> certain messages from other blocks and to write the
>>>>>>>> data from the message into database. Sometimes the
>>>>>>>> following exception occures and the block stops
>>>>>>>> writing into database:
>>>>>>>> 
>>>>>>>> thread[thread-per-block[0]: <gr_block db_logger2
>>>>>>>> (62)>]: caught unrecognized exception
>>>>>>>> 
>>>>>>>> The structure of the block is really simple:
>>>>>>>> 
>>>>>>>> def handle_msg(self, msg): message = 
>>>>>>>> pmt.pmt_symbol_to_string(msg) msg_lines = 
>>>>>>>> message.split('\n') try: sensor_id = msg_lines[0]
>>>>>>>> vendor = msg_lines[2] sensor_type = msg_lines[3] time
>>>>>>>> = msg_lines[1] #try: querry = "INSERT INTO `%s`.`%s`
>>>>>>>> (`id` ,`sens_id` ,`vendor`, `sensor_type`, `det_id`)
>>>>>>>> VALUES (NULL , '%s', '%s', '%s','%s');" %
>>>>>>>> (self._db_name, self._det_table, sensor_id, vendor,
>>>>>>>> sensor_type, self._id) # print querry cur =
>>>>>>>> self._con.cursor() cur.execute(querry) except 
>>>>>>>> mdb.Error, e: print "Unexpected error while trying
>>>>>>>> to insert into table" print msg_lines print 50*'-'
>>>>>>>> print "Error %d: %s" % (e.args[0],e.args[1])
>>>>>>>> sys.exit(1)
>>>>>>>> 
>>>>>>>> Is there any way to track this problem and find the
>>>>>>>> cause?
>>>>>>>> 
>>>>>>>> Best regards,
>>>>>>>> 
>>>>>>>> -- Nemanja Savić
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> _______________________________________________ 
>>>>>>> Discuss-gnuradio mailing list address@hidden 
>>>>>>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>>>>>
>>>>>
>>>>>
>>>>>>> 
_______________________________________________ Discuss-gnuradio
>>>>> mailing list address@hidden 
>>>>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>>> 
>>>> 
>>>> 
>>>> 
>> 
> 
> 
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJTTlOZAAoJEBQ6EdjyzlHtJ70IAIc5r5BpgQATgL4bTjSs6Lcl
YyNf3qJD8S6YtwdOjgDM11HWDlxgJ2tv+tn9jHAa1n74RhlGKGJv5WYzNB5j4xBN
6hWEj2vETmjk3H7bsBH4MmW2AT0Ff/5618qIiULsql8NcMwGN3sLj4W+CDNYJr6u
fcv6sofspqxra1l0lk05vSoKvuUYAFcEUP33SmY2BO7ZAg/40hvBtaL6xW8U+m5t
9xtCv7CbaB0sDoAHxCh+v3VSlXeGHz/JXcnNXohVYzY4ky4sqaIJkfU7MglZE418
yXoVHffCuRpg9izRVplB9k3s17puYF8ArPet9h2MiXUzBjx7etHvbD0yJs0QyUU=
=Yepe
-----END PGP SIGNATURE-----



reply via email to

[Prev in Thread] Current Thread [Next in Thread]