I'm playing with my own emperor plugin, and managed to segfault it pretty fast :)

The segfault was on line 501 of core/emperor.c, here's the gdb output:

Program received signal SIGSEGV, Segmentation fault.
emperor_add (ues=ues@entry=0x80ef6b8, name=0x80f03a0 "http://127.0.0.1:5984/uwsgi/test.json";, born=1352778515, config=config@entry=0x0, config_size=config_size@entry=0, uid=uid@entry=0, gid=gid@entry=0) at core/emperor.c:501
501             while (c_ui->ui_next) {


digging around the problem I've found out that c_ui is initialized to the global ui pointer, but since I was calling emperor_add in the _init function of my plugin, ui was still not set to point to ui_base.

Moving the line ui = &ui_base; several lines up, just under memset(&ui_base, 0... but certainly before emperor_build_scanners() solves the segfault.

Am I wrongly assuming something with that change?


--
дамјан
_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

Reply via email to