Bug report

1 Message Forum Options Options
Permalink
Miguel Ojeda
Bug report
Reply Threaded More
Print post
Permalink
Hi!

I'm new to the list. I'm a Spanish C.S. student interested in SmartEiffel.

When I was trying to compile 2.3's tutorial/net/multiplex_server.e,
the compiler returned the following:

        ****** Fatal Error: Unknown feature `unset_timeout' in type
SOCKET_INPUT_OUTPUT_STREAM.
        (For this call, the target `a_io' is of type SOCKET_INPUT_OUTPUT_STREAM.)

        The source lines involved by the message are the following:

        Line 55 columns 4, 9 in MULTIPLEX_CONNECTION
(/home/max/Desktop/SmartEiffel/tutorial/net/multiplex_connection.e):
                 a_io.unset_timeout
                 ^    ^
        ------
        Error occurs while compiling. Compilation process aborted.

In addition, I noticed that r8141 changed such file (along with others):
Author: cadrian
        Date: 2007-01-27 03:44:04 +0000 (Sat, 27 Jan 2007)
        New Revision: 8141

        Modified:
           trunk/lib/io/input_stream.e
           trunk/lib/io/low_level/input_stream_tools.e
           trunk/lib/io/terminal/text_file_read.e
           trunk/lib/net/low_level/socket.e
           trunk/lib/net/socket_input_output_stream.e
           trunk/sys/plugins/net/c/net.c

But such changes are not present in today's nightly build (nor in 2.3).

What is going on?

Furthermore, I removed the

         a_io.unset_timeout

line, I tried the server and worked almost fine: I found two "bugs".
First, I had to ios.flush the output every time in order to send the
data to the clients (if not, they received it when the connection is
finishing). Second, if a client connects and then cuts the connection
(f.e. ^C with netcat), then the server crashes:

         read_line SERVER_SOCKET_INPUT_OUTPUT_STREAM
         (...)
         ======================================
         read_line_in SERVER_SOCKET_INPUT_OUTPUT_STREAM
         (...)
         line 22 column 20 file
/usr/local/SmartEiffel/lib/io/low_level/input_stream_tools.e
         =====   Top of run-time stack    =====
         *** Error at Run Time ***: Require Assertion Violated.
         *** Error at Run Time ***: not is_filtered and then can_read_line

Note that this _do not occurs_ if the client has sent at least one line.

Maybe both of such bugs are related to the line removed (probably, I
didn't studied it deeply; however, because the example does not
compile, I wanted to contact you first).

Thank you!

Regards,

Miguel Ojeda