[zeromq-dev] ZMQ appends weird characters to message

Dávid Kaya mail at davidkaya.sk
Mon Sep 15 19:27:32 CEST 2014


Here is that function: http://pastebin.com/AgUuDqqK .


On 15.09.2014 19:19, gonzalo diethelm wrote:
> Without seeing any actual code, it is impossible to say.
>
> --
> Gonzalo Diethelm
> DCV Chile
>
>> -----Original Message-----
>> From: zeromq-dev-bounces at lists.zeromq.org [mailto:zeromq-dev-
>> bounces at lists.zeromq.org] On Behalf Of Dávid Kaya
>> Sent: Monday, September 15, 2014 2:18 PM
>> To: ZeroMQ development list
>> Subject: Re: [zeromq-dev] ZMQ appends weird characters to message
>>
>> If it would be because of memory, the std::string.replace() would 
>> not fix,
>> would it? Everything is done in one function, I don't think this is 
>> the problem.
>>
>>
>> On 15.09.2014 19:11, gonzalo diethelm wrote:
>> > That usually happens... Try to focus on the differences between 
>> your
>> > short example and your real code.
>> >
>> > One point to focus on could be memory management: are you sure the
>> > messages you are sending are actually surviving until they get 
>> sent?
>> > A
>> > simple wrong way to manage this would be putting your messages in 
>> an
>> > automatic variable that gets overwritten when you leave the 
>> function
>> > that sends the message. Another wrong way would be using a static
>> > buffer for your messages, that gets overwritten with each message.
>> >
>> > HTH.
>> >
>> > --
>> > Gonzalo Diethelm
>> > DCV Chile
>> >
>> >> -----Original Message-----
>> >> From: zeromq-dev-bounces at lists.zeromq.org [mailto:zeromq-dev-
>> >> bounces at lists.zeromq.org] On Behalf Of Dávid Kaya
>> >> Sent: Monday, September 15, 2014 2:02 PM
>> >> To: ZeroMQ development list
>> >> Subject: Re: [zeromq-dev] ZMQ appends weird characters to message
>> >>
>> >> Well I tried to recreate the problem but it works as intended in 
>> my
>> >> short example. I really don't know where could be the problem 
>> since I
>> >> am doing it exactly the same way in my example as in my 
>> application.
>> >> Maybe the problem is in the std::string, because when I use
>> >> std::string.replace() to replace some characters in the URL then 
>> it
>> >> works fine.
>> >> But when I dont use it and append the URL to "success:"
>> >> message right away, then it does not work. So maybe
>> >> std::string.replace() somehow fixes the string when it rearranges 
>> it.
>> >> The first problem with "login" was because I wasn't using size() 
>> in
>> >> string constructor.
>> >>
>> >> David
>> >>
>> >> On 15.09.2014 17:56, gonzalo diethelm wrote:
>> >> > Please create a short (as short as possible) example that shows
>> >> this
>> >> > symptom, and post it to the list.
>> >> >
>> >> > --
>> >> > Gonzalo Diethelm
>> >> > DCV Chile
>> >> >
>> >> >> -----Original Message-----
>> >> >> From: zeromq-dev-bounces at lists.zeromq.org [mailto:zeromq-dev-
>> >> >> bounces at lists.zeromq.org] On Behalf Of Dávid Kaya
>> >> >> Sent: Monday, September 15, 2014 12:39 PM
>> >> >> To: ZeroMQ development list
>> >> >> Subject: Re: [zeromq-dev] ZMQ appends weird characters to 
>> message
>> >> >>
>> >> >> Yes, I've printed that message. There can't be any NULL byte
>> >> there.
>> >> >> It is string
>> >> >> "success:" appended with url. It is normal url like
>> >> >> "http://example.org/path/to/jsp?lang=en_US?session="session id
>> >> here".
>> >> >> That session ID contains numbers, characters and dashes.
>> >> >>
>> >> >>
>> >> >> On 15.09.2014 17:30, gonzalo diethelm wrote:
>> >> >> > No, this is not a (known) limitation. Did you print exactly
>> >> what
>> >> >> you
>> >> >> > are sending and what you are receiving? My guess is you are
>> >> >> putting a
>> >> >> > null byte in the middle of what you are sending.
>> >> >> >
>> >> >> > --
>> >> >> > Gonzalo Diethelm
>> >> >> > DCV Chile
>> >> >> >
>> >> >> >> -----Original Message-----
>> >> >> >> From: zeromq-dev-bounces at lists.zeromq.org 
>> [mailto:zeromq-dev-
>> >> >> >> bounces at lists.zeromq.org] On Behalf Of Dávid Kaya
>> >> >> >> Sent: Monday, September 15, 2014 12:21 PM
>> >> >> >> To: zeromq-dev at lists.zeromq.org
>> >> >> >> Subject: Re: [zeromq-dev] ZMQ appends weird characters to
>> >> message
>> >> >> >>
>> >> >> >> Well, I've printed out size and it is correct. I've also
>> >> >> shortened
>> >> >> >> the message by 5 characters and it stopped cutting off the
>> >> last
>> >> >> >> characters (atleast I think it stopped, tried 15 times and 
>> it
>> >> >> came
>> >> >> >> correct every time). So I think the problem was in the 
>> length
>> >> of
>> >> >> the
>> >> >> >> message. I don't know if it is a bug in ZMQ or system
>> >> limitation
>> >> >> of
>> >> >> >> socket files?
>> >> >> >>
>> >> >> >> David
>> >> >> >>
>> >> >> >>
>> >> >> >> On 15.09.2014 16:47, gonzalo diethelm wrote:
>> >> >> >> > Good point. Forgot about the specific details for that 
>> C++
>> >> >> >> > constructor. The null byte should not be required.
>> >> >> >> >
>> >> >> >> > As Tom points out, you should print out what you are 
>> sending
>> >> >> and
>> >> >> >> > receiving (contents and length) and make sure it makes
>> >> sense.
>> >> >> >> >
>> >> >> >> > HTH.
>> >> >> >> >
>> >> >> >> > --
>> >> >> >> > Gonzalo Diethelm
>> >> >> >> > DCV Chile
>> >> >> >> >
>> >> >> >> >> -----Original Message-----
>> >> >> >> >> From: zeromq-dev-bounces at lists.zeromq.org
>> >> [mailto:zeromq-dev-
>> >> >> >> >> bounces at lists.zeromq.org] On Behalf Of Tom Quarendon
>> >> >> >> >> Sent: Monday, September 15, 2014 11:42 AM
>> >> >> >> >> To: ZeroMQ development list
>> >> >> >> >> Subject: Re: [zeromq-dev] ZMQ appends weird characters 
>> to
>> >> >> message
>> >> >> >> >>
>> >> >> >> >> > You have two choices:
>> >> >> >> >> > 1. Send the '\0' as part of the message (and set 
>> length
>> >> to
>> >> >> one
>> >> >> >> >> more byte).
>> >> >> >> >> > 2. Append a '\0' after receiving the message.
>> >> >> >> >>
>> >> >> >> >> Uh, why?
>> >> >> >> >> string(static_cast<char*>(reply.data()),reply.size());
>> >> >> >> >> doesn't assume the string is null terminated. It 
>> constructs
>> >> >> >> string
>> >> >> >> >> from pointer and length. Isn't adding a in a null just
>> >> going
>> >> >> mask
>> >> >> >> the
>> >> >> >> >> real issue and make it look like the std::string only
>> >> >> contained
>> >> >> >> >> "login" when really it still contained the extra stuff 
>> as
>> >> >> well.
>> >> >> >> >> David, Do you know what reply.size() actually contains?
>> >> Have
>> >> >> you
>> >> >> >> >> tried printing that out and comparing it to what you
>> >> expect?
>> >> >> >> >>
>> >> >> >> >> _______________________________________________
>> >> >> >> >> zeromq-dev mailing list
>> >> >> >> >> zeromq-dev at lists.zeromq.org
>> >> >> >> >> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>> >> >> >> >
>> >> >> >> >
>> >> >> >> > -----------------------------------------
>> >> >> >> > Declaración de confidencialidad: Este Mensaje esta 
>> destinado
>> >> >> para
>> >> >> >> el
>> >> >> >> > uso de la o las personas o entidades a quien ha sido
>> >> dirigido y
>> >> >> >> puede
>> >> >> >> > contener información reservada y confidencial que no 
>> puede
>> >> ser
>> >> >> >> > divulgada, difundida, ni aprovechada en forma alguna. El 
>> uso
>> >> no
>> >> >> >> > autorizado de la información contenida en este correo 
>> podrá
>> >> ser
>> >> >> >> > sancionado de conformidad con la ley chilena.
>> >> >> >> > Si usted ha recibido este correo electrónico por error, 
>> le
>> >> >> pedimos
>> >> >> >> > eliminarlo junto con los archivos adjuntos y avisar
>> >> >> inmediatamente
>> >> >> >> al
>> >> >> >> > remitente, respondiendo este mensaje.
>> >> >> >> >
>> >> >> >> > "Before printing this e-mail think if is really 
>> necesary".
>> >> >> >> > Disclosure: This Message is to be used by the individual,
>> >> >> >> individuals
>> >> >> >> > or entities that it is addressed to and may include 
>> private
>> >> and
>> >> >> >> > confidential information that may not be disclosed, made
>> >> public
>> >> >> >> nor
>> >> >> >> > used in any way at all. Unauthorized use of the 
>> information
>> >> in
>> >> >> >> this
>> >> >> >> > electronic mail message may be subject to the penalties 
>> set
>> >> >> forth
>> >> >> >> by
>> >> >> >> > Chilean law.
>> >> >> >> > If you have received this electronic mail message in 
>> error,
>> >> we
>> >> >> ask
>> >> >> >> you
>> >> >> >> > to destroy the message and its attached file(s) and to
>> >> >> immediately
>> >> >> >> > notify the sender by answering this message.
>> >> >> >> > _______________________________________________
>> >> >> >> > zeromq-dev mailing list
>> >> >> >> > zeromq-dev at lists.zeromq.org
>> >> >> >> > http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>> >> >> >>
>> >> >> >> _______________________________________________
>> >> >> >> zeromq-dev mailing list
>> >> >> >> zeromq-dev at lists.zeromq.org
>> >> >> >> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>> >> >> >
>> >> >> > -----------------------------------------
>> >> >> > Declaración de confidencialidad: Este Mensaje esta destinado
>> >> para
>> >> >> el
>> >> >> > uso de la o las personas o entidades a quien ha sido 
>> dirigido y
>> >> >> puede
>> >> >> > contener información reservada y confidencial que no puede 
>> ser
>> >> >> > divulgada, difundida, ni aprovechada en forma alguna. El uso 
>> no
>> >> >> > autorizado de la información contenida en este correo podrá 
>> ser
>> >> >> > sancionado de conformidad con la ley chilena.
>> >> >> > Si usted ha recibido este correo electrónico por error, le
>> >> pedimos
>> >> >> > eliminarlo junto con los archivos adjuntos y avisar
>> >> inmediatamente
>> >> >> al
>> >> >> > remitente, respondiendo este mensaje.
>> >> >> >
>> >> >> > "Before printing this e-mail think if is really necesary".
>> >> >> > Disclosure: This Message is to be used by the individual,
>> >> >> individuals
>> >> >> > or entities that it is addressed to and may include private 
>> and
>> >> >> > confidential information that may not be disclosed, made 
>> public
>> >> >> nor
>> >> >> > used in any way at all. Unauthorized use of the information 
>> in
>> >> >> this
>> >> >> > electronic mail message may be subject to the penalties set
>> >> forth
>> >> >> by
>> >> >> > Chilean law.
>> >> >> > If you have received this electronic mail message in error, 
>> we
>> >> ask
>> >> >> you
>> >> >> > to destroy the message and its attached file(s) and to
>> >> immediately
>> >> >> > notify the sender by answering this message.
>> >> >> > _______________________________________________
>> >> >> > zeromq-dev mailing list
>> >> >> > zeromq-dev at lists.zeromq.org
>> >> >> > http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>> >> >>
>> >> >> _______________________________________________
>> >> >> zeromq-dev mailing list
>> >> >> zeromq-dev at lists.zeromq.org
>> >> >> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>> >> > _______________________________________________
>> >> > zeromq-dev mailing list
>> >> > zeromq-dev at lists.zeromq.org
>> >> > http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>> >>
>> >> _______________________________________________
>> >> zeromq-dev mailing list
>> >> zeromq-dev at lists.zeromq.org
>> >> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>> >
>> > -----------------------------------------
>> > Declaración de confidencialidad: Este Mensaje esta destinado para 
>> el
>> > uso de la o las personas o entidades a quien ha sido dirigido y 
>> puede
>> > contener información reservada y confidencial que no puede ser
>> > divulgada, difundida, ni aprovechada en forma alguna. El uso no
>> > autorizado de la información contenida en este correo podrá ser
>> > sancionado de conformidad con la ley chilena.
>> > Si usted ha recibido este correo electrónico por error, le pedimos
>> > eliminarlo junto con los archivos adjuntos y avisar inmediatamente 
>> al
>> > remitente, respondiendo este mensaje.
>> >
>> > "Before printing this e-mail think if is really necesary".
>> > Disclosure: This Message is to be used by the individual, 
>> individuals
>> > or entities that it is addressed to and may include private and
>> > confidential information that may not be disclosed, made public 
>> nor
>> > used in any way at all. Unauthorized use of the information in 
>> this
>> > electronic mail message may be subject to the penalties set forth 
>> by
>> > Chilean law.
>> > If you have received this electronic mail message in error, we ask 
>> you
>> > to destroy the message and its attached file(s) and to immediately
>> > notify the sender by answering this message.
>> > _______________________________________________
>> > zeromq-dev mailing list
>> > zeromq-dev at lists.zeromq.org
>> > http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
> -----------------------------------------
> Declaración de confidencialidad: Este Mensaje esta destinado para
> el uso de la o las personas o entidades a quien ha sido dirigido y
> puede contener información reservada y confidencial que no puede
> ser divulgada, difundida, ni aprovechada en forma alguna. El uso no
> autorizado de la información contenida en este correo podrá ser
> sancionado de conformidad con la ley chilena.
> Si usted ha recibido este correo electrónico por error, le pedimos
> eliminarlo junto con los archivos adjuntos y avisar inmediatamente
> al remitente, respondiendo este mensaje.
>
> "Before printing this e-mail think if is really necesary".
> Disclosure: This Message is to be used by the individual,
> individuals or entities that it is addressed to and may include
> private and confidential information that may not be disclosed,
> made public nor used in any way at all. Unauthorized use of the
> information in this electronic mail message may be subject to the
> penalties set forth by Chilean law.
> If you have received this electronic mail message in error, we ask
> you to destroy the message and its attached file(s) and to
> immediately notify the sender by answering this message.
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev




More information about the zeromq-dev mailing list