Matthias Vallentin
08/30/2023, 3:12 PMFLB_EXPORT int flb_output_set(flb_ctx_t* ctx, int ffd, ...);
I'm calling this from a C++ context where I have a map<string, string>
and need to do quite some gymnastics to wedge the data into that function. I'd much rather user this API:
static inline struct flb_output_instance *out_instance_get(flb_ctx_t *ctx, int ffd)
Why? Because then I can easily set the params:
for (const auto& [key, value] : config_map)
if (flb_output_set_property(instance, key.c_str(), value.c_str()) != 0)
return failure;
However, the function flb_output_set_property
is static inline
(and not an exported symbol). Any guidance how to solve this somewhat ergonomically?Matthias Vallentin
08/31/2023, 5:35 AMflb_stop
and flb_destroy
.
I think flb_loop
is that function but I don't find any documentation. Looking at the implementation, I see:
while (ctx->status == FLB_LIB_OK) {
sleep(1);
}
The loop logic is there, but from a distance I do not understand whether the semantics of FLB_LIB_OK
are "I have nothing to do".Matthias Vallentin
09/01/2023, 8:20 AMin_lib
and flb_lib_push
to accept MsgPack in addition to JSON? It's already possible to consume MsgPack with out_lib
, but not yet in_lib
. This would make the library API symmetric.Saeed
09/04/2023, 7:20 AMRavikanth Jilludimudi
09/13/2023, 1:42 PMeduardo
09/14/2023, 6:05 PMAmol Agrawal
09/15/2023, 4:18 PMCGO_ENABLED=1 CC=aarch64-linux-gnu-gcc GOOS=linux GOARCH=arm64 go build -ldflags "-X 'main.revision=' -X 'main.builddate='" -buildmode=c-shared -o output.so .
However using this my cross compilation fails with
#17 39.58 # <http://github.com/calyptia/cmetrics-go|github.com/calyptia/cmetrics-go>
#17 39.58 /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/local/lib/libcmetrics.a when searching for -lcmetrics
#17 39.58 /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/local/lib/libcmetrics.a when searching for -lcmetrics
#17 39.58 /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: cannot find -lcmetrics
#17 39.58 /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /lib/../lib/libcfl.a when searching for -lcfl
#17 39.58 /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /lib/libcfl.a when searching for -lcfl
#17 39.58 /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: cannot find -lcfl
#17 39.58 /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/local/lib/libmpack.a when searching for -lmpack
#17 39.58 /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/local/lib/libmpack.a when searching for -lmpack
#17 39.58 /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: cannot find -lmpack
#17 39.58 /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/local/lib/libxxhash.a when searching for -lxxhash
#17 39.58 /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/local/lib/libxxhash.a when searching for -lxxhash
#17 39.58 /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: cannot find -lxxhash
which looks to be a case of not able to find the arm64 cmetric libraries. Does anyone know how I can avoid this while still cross compiling?Matthias Vallentin
09/24/2023, 5:40 AMflb_create
2. lib
input
3. invalid output (user error, e.g., xxx
)
4. flb_destroy
👇
239 if (ctx->config->is_running == FLB_TRUE) {
-> 240 flb_engine_shutdown(ctx->config);
241 }
And then in `flb_output.c`:
479 params = FLB_TLS_GET(out_flush_params);
480 if (params) {
-> 481 flb_free(params); <---------- segfault đź’Ą
482 }
483 }
This appears to reference global TLS state, so I dug deeper and think I found a bug: The do_start
function is the place where this state gets initialized in flb_output_prepare
, via:
pthread_once(&flb_lib_once, flb_init_env);
However, the output got never correctly initialized and the the user hasn't invoked flb_start
, this state is never initialized. So I'm freeing a point that is never allocated, which is exactly the output:
tenzir(63774,0x16c21b000) malloc: *** error for object 0x16c21b000: pointer being freed was not allocated
Ahmad Al-Masry
10/27/2023, 11:27 AMSzern
11/21/2023, 11:18 PMPat
11/22/2023, 9:59 AMAndrew Elwell
11/26/2023, 6:30 AMSzern
11/29/2023, 5:57 PMSzern
11/30/2023, 8:56 PMAimee Ukasick
02/08/2024, 7:33 PMjonathan R.
04/15/2024, 12:52 PMeduardo
04/17/2024, 6:07 PMeduardo
04/17/2024, 6:07 PMRémy Léone
04/19/2024, 12:59 PMRaahi Chada
06/05/2024, 7:15 PMAnurag Gupta
06/05/2024, 9:40 PMAnurag Gupta
06/05/2024, 9:40 PMPat
06/06/2024, 8:55 AMPat
06/06/2024, 8:57 AMjonathan R.
06/06/2024, 12:39 PMstatic
and to declare them in the header. Is this something you could accommodate?Raahi Chada
06/17/2024, 7:35 PMRaahi Chada
06/21/2024, 6:01 PMTanmaya Panda
07/04/2024, 7:43 PMRaahi Chada
07/11/2024, 4:04 PMSelva
08/14/2024, 6:55 PMcmake -DFLB_ALL=On ..
throws errors although it completes successfully (logs in thread). Running make has similar error dump with build stopping at 12% even though the binary is generated at the end. Is this all expected?