On Fri, May 10, 2019 at 02:08:51PM -0400, Jonathan Rajotte-Julien wrote:
> Hi,
> 
> On Fri, May 10, 2019 at 12:33:42PM -0400, Sebastien Boisvert wrote:
> > On 2019-05-10 11:26 a.m., Gabriel-Andrew Pollo-Guilbert wrote:
> > 
> > Hello Gabriel-Andrew,
> > 
> > > This patch allocates the memory used by the ts_end field added by commit
> > > 6c737d05. When allocating lots of subbuffer for a channel (512 or more),
> > > zalloc_shm() will fail to allocate all the objects because the allocated 
> > > memory
> > > map didn't take account the newly added field.
> > > 
> > > lttng-tools version: b14f53d4 (2.12.0-pre)
> > > 
> > > Steps to reproduce the bug:
> > > 
> > >   1. lttng-sessiond -vvv --verbose-consumer
> > 
> > I need to killall existing lttng-sessiond daemon, right ?
> 
> No, since we are in userspace this can be done with a root lttng-sessiond
> present. But in real life -> yes.
> 
> > 
> > >   2. start a traced application
> > 
> > I used lttng-ust/doc/examples/demo/.
> 
> Make sure that the app is long lived (easy-ust with a while loop for example).
> This is only to force the allocation on lttng start.
> 
> > 
> > >   3. lttng create "test-sesssion"
> >                                 ^^^
> > There are too many s in session.
> 
> Does not matter since it is the session name here and subsequent call are done
> in the context on that session. Still a good catch.
> 
> > 
> > 
> > >   4. lttng enable-channel --userspace --num-subbuf 512 --subbuf-size 8k 
> > > --overwrite channel
> > >   5. lttng enable-event -u -a -c channel
> > >   6. lttng start
> > > 
> > > After these steps, the following error message show should be thrown:
> > > 
> > >   Error: ask_channel_creation consumer command failed
> > >   Error: Error creating UST channel "channel" on the consumer daemon
> > 
> > When I build lttng-tools b14f53d4
> > 
> > I get this error:
> > 
> > make[3]: Entering directory 
> > '/home/sboisvert/open-source/lttng.org/Source/lttng-tools/src/common/ust-consumer'
> >   CC       ust-consumer.lo
> > ust-consumer.c: In function 'lttng_ustconsumer_recv_cmd':
> > ust-consumer.c:1459:7: error: 'struct ustctl_consumer_channel_attr' has no 
> > member named 'blocking_timeout'
> >    attr.blocking_timeout= msg.u.ask_channel.blocking_timeout;
> >        ^
> > ust-consumer.c: In function 'lttng_ustconsumer_sample_snapshot_positions':
> > ust-consumer.c:2225:9: warning: implicit declaration of function 
> > 'ustctl_snapshot_sample_positions'; did you mean 
> > 'ustctl_snapshot_get_produced'? [-Wimplicit-function-declaration]
> >   return ustctl_snapshot_sample_positions(stream->ustream);
> >          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >          ustctl_snapshot_get_produced
> > Makefile:548: recipe for target 'ust-consumer.lo' failed
> 
> Are you sure you are building lttng-tools against lttng-ust
> 6c737d0594cac0d969e1948ea1ed55c15be9cec8 or master?
> 
> In any case, this does not seems related to this particular issue. Please 
> start
> a new email thread.
> 
> > 
> > 
> > There seems to be 2 declarations of struct ustctl_consumer_channel_attr.
> > 
> > In file lttng-tools/src/bin/lttng-sessiond/lttng-ust-ctl.h,
> > struct ustctl_consumer_channel_attr has the attribute blocking_timeout.
> > 
> > In file lttng-ust/include/lttng/ust-ctl.h, struct 
> > ustctl_consumer_channel_attr
> > does not have the attribute.
> 
> Currently on 6c737d0594cac0d969e1948ea1ed55c15be9cec8 (almost master):
> 
> struct ustctl_consumer_channel_attr {
>       enum lttng_ust_chan_type type;
>       uint64_t subbuf_size;                   /* bytes */
>       uint64_t num_subbuf;                    /* power of 2 */
>       int overwrite;                          /* 1: overwrite, 0: discard */
>       unsigned int switch_timer_interval;     /* usec */
>       unsigned int read_timer_interval;       /* usec */
>       enum lttng_ust_output output;           /* splice, mmap */
>       uint32_t chan_id;                       /* channel ID */
>       unsigned char uuid[LTTNG_UST_UUID_LEN]; /* Trace session unique ID */
>       int64_t blocking_timeout;                       /* Blocking timeout 
> (usec) */
> } LTTNG_PACKED;
> 
> This field was introduced in b2c5f61a9. Suggesting that you lttng-ust tree is
> out of date.
> 
> > 
> > 
> > They are exactly the same, except the missing blocking_timeout attribute.
> > 
> > 
> > [sboisvert@GT480:Source]$ grep -A 10 "struct ustctl_consumer_channel_attr 
> > {" lttng-ust/include/lttng/ust-ctl.h
> > struct ustctl_consumer_channel_attr {
> >     enum lttng_ust_chan_type type;
> >     uint64_t subbuf_size;                   /* bytes */
> >     uint64_t num_subbuf;                    /* power of 2 */
> >     int overwrite;                          /* 1: overwrite, 0: discard */
> >     unsigned int switch_timer_interval;     /* usec */
> >     unsigned int read_timer_interval;       /* usec */
> >     enum lttng_ust_output output;           /* splice, mmap */
> >     uint32_t chan_id;                       /* channel ID */
> >     unsigned char uuid[LTTNG_UST_UUID_LEN]; /* Trace session unique ID */
> > } LTTNG_PACKED;
> > 
> > [sboisvert@GT480:Source]$ grep -A 11 "struct ustctl_consumer_channel_attr 
> > {" lttng-tools/src/bin/lttng-sessiond/lttng-ust-ctl.h
> > struct ustctl_consumer_channel_attr {
> >     enum lttng_ust_chan_type type;
> >     uint64_t subbuf_size;                   /* bytes */
> >     uint64_t num_subbuf;                    /* power of 2 */
> >     int overwrite;                          /* 1: overwrite, 0: discard */
> >     unsigned int switch_timer_interval;     /* usec */
> >     unsigned int read_timer_interval;       /* usec */
> >     enum lttng_ust_output output;           /* splice, mmap */
> >     uint32_t chan_id;                       /* channel ID */
> >     unsigned char uuid[LTTNG_UST_UUID_LEN]; /* Trace session unique ID */
> >     int64_t blocking_timeout;                       /* Blocking timeout 
> > (usec) */
> > } LTTNG_PACKED;
> > 
> > [sboisvert@GT480:Source]$ diff -u <(grep -A 11 "struct 
> > ustctl_consumer_channel_attr {" 
> > lttng-tools/src/bin/lttng-sessiond/lttng-ust-ctl.h) <(grep -A 10 "struct 
> > ustctl_consumer_channel_attr {" lttng-ust/include/lttng/ust-ctl.h)
> > --- /dev/fd/63      2019-05-10 12:32:23.562246820 -0400
> > +++ /dev/fd/62      2019-05-10 12:32:23.562246820 -0400
> > @@ -8,5 +8,4 @@
> >     enum lttng_ust_output output;           /* splice, mmap */
> >     uint32_t chan_id;                       /* channel ID */
> >     unsigned char uuid[LTTNG_UST_UUID_LEN]; /* Trace session unique ID */
> > -   int64_t blocking_timeout;                       /* Blocking timeout 
> > (usec) */
> >  } LTTNG_PACKED;
> > 
> >  
> > My configure commands (followed by "make install"):
> > 
> > [sboisvert@GT480:userspace-rcu]$ ./configure 
> > --prefix=/home/sboisvert/open-source/lttng.org/Build/userspace-rcu/v0.11.0
> > 
> > [sboisvert@GT480:lttng-ust]$ ./configure 
> > --prefix=/home/sboisvert/open-source/lttng.org/Build/lttng-ust/v2.9.4 
> > LDFLAGS=-L/home/sboisvert/open-source/lttng.org/Build/userspace-rcu/v0.11.0/lib
> > 
> > [sboisvert@GT480:lttng-tools]$ ./configure 
> > --prefix=/home/sboisvert/open-source/lttng.org/Build/lttng-tools/b14f53d4 
> > LDFLAGS=-L/home/sboisvert/open-source/lttng.org/Build/lttng-ust/v2.9.4/lib 
> > CPPFLAGS=-I/home/sboisvert/open-source/lttng.org/Build/lttng-ust/v2.9.4/include
> > 
> 
> This is probably an artefact but all your path have 2.9 in them. This work is
> done against master of lttng-tools and lttng-ust.
> 
> Our CI does not indicate any failure for the master branches. [1]
> 
> [1] 

A bit quick on the send email on that one.

Our ci currently indicate failure for the master branch but nothing during the
build process (at make check).

[1] https://ci.lttng.org/job/lttng-tools_master_build/

> 
> Cheers
> _______________________________________________
> lttng-dev mailing list
> lttng-dev@lists.lttng.org
> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

-- 
Jonathan Rajotte-Julien
EfficiOS
_______________________________________________
lttng-dev mailing list
lttng-dev@lists.lttng.org
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

Reply via email to