What's new

pixelserv pixelserv - A Better One-pixel Webserver for Adblock

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

I switched to the static .kj build, which ran fine for a day and a half and then crashed. Restarting it lasted for just a few minutes on my 87u. This is similar to the .ki static build problem a reported in post #351. I've gone back to the entware .ki build, which ran for months on end without issue.

I think perhaps not an issue with pixelserv, but something about the static build?
Same issue here, with RT-AC68U.

Are you folks using this static build linked here?

Other than the one thing mentioned earlier in this thread, I've had no issues with it. Certainly no crashing. AC68W on the latest fork release.

rXb12WV.png
 
Are you folks using this static build linked here?

Yes. Installed and deleted existing certificates from .Ki version. Ran fine for a few days and crashed suddenly without a trace.

I run pixelserv with -p and -k switches, maybe this is the cause....
 
No. I had been running it with -p 80 -k 443. So I ran it without the switches and the static version crashed after an hour.
 
Interesting...anecdotal evidence shows john's FW build might provide a more stable runtime environment? lol. Now that I have more data points, I think I know what to hunt for. Hopefully could figure out something. Thanks for all the inputs.

edit:

I uploaded the dynamically linked build (pixelserv-tls.Kj-dyn.zip):

https://github.com/kvic-z/pixelserv-tls/releases/tag/v35.HZ12.Kj

@elorimer @rromeroa Can you try if this build doesn't crash?
 
I uploaded the dynamically linked build (pixelserv-tls.Kj-dyn.zip):

Thanks @kvic for your interest, installed in my AC68U (380.66_2) but doesnt work.. :(
Launched process but does not listen ports (not "listening" trace in syslog and no web response)

With .Ki version, ican see this process:
..... nobody 3888 S pixelserv-tls 192.168.1.3 -p 80 -k 4443
..... admin 3888 S pixelserv-tls 192.168.1.3 -p 80 -k 4443

With Kj-dyn:
..... admin 2812 S pixelserv-tls 192.168.1.3 -p 80 -k 4443
..... admin 2812 S pixelserv-tls 192.168.1.3 -p 80 -k 4443
..... admin 2812 S pixelserv-tls 192.168.1.3 -p 80 -k 4443

With Kj-static:
..... nobody 1212 S pixelserv-tls 192.168.1.3 -p 80 -k 4443
 
Last edited:
Same here. I'm running without -p or -k switches. The dynamic version starts, but web pages show broken link boxes, and the stats page doesn't load. Top shows the process at the bottom. Not sure if the "listening" line in the syslog is just for when you specify switches.
 
Same here. I'm running without -p or -k switches. The dynamic version starts, but web pages show broken link boxes, and the stats page doesn't load. Top shows the process at the bottom. Not sure if the "listening" line in the syslog is just for when you specify switches.
The listening port is sent to syslog even if no switches are used if ps starts properly.
The static and dynamic versions start up to three ps instances on my ARM router, no ports are specified. All instances have no port number reported in syslog or top.
This only happens with the new Kj.
 
Thanks for testing and feedback. It meant pixelserv-tls failed to initialise properly. I suspect the main cause is the older pthread library in Merlin build...

I opted for downloading Entware toolchains and made a new build for Entware. So here it's for arm routers: pixelserv-tls.Kj-entware-armv7.zip.

To install, overwrite the binary in /opt/bin. Can you guys try this one and see if all issues resolved?
 
Thanks for testing and feedback. It meant pixelserv-tls failed to initialise properly. I suspect the main cause is the older pthread library in Merlin build...

I opted for downloading Entware toolchains and made a new build for Entware. So here it's for arm routers: pixelserv-tls.Kj-entware-armv7.zip.

To install, overwrite the binary in /opt/bin. Can you guys try this one and see if all issues resolved?
That works:
pixelserv-tls version: v35.HZ12.Kj compiled: May 26 2017 14:22:54 options: 172.20.0.254
Syslog:
May 26 17:06:13 pixelserv[2645]: Listening on :172.20.0.254:80
May 26 17:06:13 pixelserv[2645]: Listening on :172.20.0.254:443
 
Can you guys try this one and see if all issues resolved?

Installed and running fine. Now, with ps instances:

..... nobody 3888 S pixelserv-tls 192.168.1.3 -p 80 -k 4443
..... admin 3888 S pixelserv-tls 192.168.1.3 -p 80 -k 4443

Thanks, I will notify any suspicious behavior.
 
Hello @kvic,
Thanks for keeping pixelserv-tls updated. I have a few issues with this latest release. The mips dynamic version runs, but when it tries to generate a cert it dies. Another issue is the static version for mips. I can't seem to get that one to run at all. I am currently running tomato v1.28-40 on a linksys e2500v3 with entware-ng. And all I did was replaced the ki version that comes with the entware-ng opkg. Not sure what has changed between the last version to this one, but something with the cert generation might be broken as that makes the dynamic kj version stop working. Switched back to the ki version and everything is fine.
 
This seems to be working for me. 87u, .66, on 80/443.

Edit: Up 40 hours so far, so this looks good. Thanks.
 
Last edited:
Hello @kvic,
Thanks for keeping pixelserv-tls updated. I have a few issues with this latest release. The mips dynamic version runs, but when it tries to generate a cert it dies. Another issue is the static version for mips. I can't seem to get that one to run at all. I am currently running tomato v1.28-40 on a linksys e2500v3 with entware-ng. And all I did was replaced the ki version that comes with the entware-ng opkg. Not sure what has changed between the last version to this one, but something with the cert generation might be broken as that makes the dynamic kj version stop working. Switched back to the ki version and everything is fine.

I believe Tomato and Asuswrt use slightly different toolchains. So not surprised to see the binaries incompatible. Last night I skipped the Entware binary for mips 'cos it requires repeating the same workflow (starting from building the compilers..linkers etc) Quite a heavy lifting without known users. I'll try to build it tonight.

edit: pixelserv-tls.Kj-entware-mipsel.zip uploaded.

Can you try this binary and pls report back its stability after a week or so?
 
I believe Tomato and Asuswrt use slightly different toolchains. So not surprised to see the binaries incompatible. Last night I skipped the Entware binary for mips 'cos it requires repeating the same workflow (starting from building the compilers..linkers etc) Quite a heavy lifting without known users. I'll try to build it tonight.

edit: pixelserv-tls.Kj-entware-mipsel.zip uploaded.

Can you try this binary and pls report back its stability after a week or so?
I appreciate it. I will let you know how it goes. Thank you

I just tried it and same issue occurs. Stops working once it tries to generate a certificate. Difficult to give it a week of testing if it dies with that issue. Another thing to note. I use pixelserv-tls with a adblock script that with the ki version from entware-ng it would start and stop pixelserv with no issue. With the kj versions it doesn't. It does however run when I use the init.d to start it, but when a cert is needed and it tries to generate. It dies.
 
Last edited:
i'm still using pixelserv-tls version: v35.HZ12.Ki compiled: Oct 31 2016

What is the recommend way of updating it and should I?
 
I appreciate it. I will let you know how it goes. Thank you

I just tried it and same issue occurs. Stops working once it tries to generate a certificate. Difficult to give it a week of testing if it dies with that issue. Another thing to note. I use pixelserv-tls with a adblock script that with the ki version from entware-ng it would start and stop pixelserv with no issue. With the kj versions it doesn't. It does however run when I use the init.d to start it, but when a cert is needed and it tries to generate. It dies.

Thanks for your feedback. Sadly it crashed but it's good to know both dyn and entware-mipsel crashed the same way.

I just did another build: pixelserv-tls.Kj-entware-mipsel-2.zip. This shall resolve all issues for you. Hopefully last try.

Can you also tell me the exact commands you use to start/stop pixelserv in your ad script?
 
i'm still using pixelserv-tls version: v35.HZ12.Ki compiled: Oct 31 2016

What is the recommend way of updating it and should I?

I've just cleaned up the zip files in release section. For ARM routers, pls get pixelserv-tls.Kj-entware-armv7.zip. Then rename and replace the pixelserv-tls in /opt/bin.

In future, when you upgrade again from Entware, it'll be simply overwritten. So no junk shall remain.
 
Thanks for your feedback. Sadly it crashed but it's good to know both dyn and entware-mipsel crashed the same way.

I just did another build: pixelserv-tls.Kj-entware-mipsel-2.zip. This shall resolve all issues for you. Hopefully last try.

Can you also tell me the exact commands you use to start/stop pixelserv in your ad script?

Well, I have some good news. Both problems are fixed. Certs generate fine and it starts up fine with the adblock script. And the command it uses to stop is killall pixelserv. To start it does this:
if [ "$PIXEL_IP" != "0" ]; then
if ! ifconfig | grep -q $BRIDGE:$vif; then
elog "Setting up $rediripandmask on $BRIDGE:$vif"
ifconfig $BRIDGE:$vif $rediripandmask up
fi
if ps -w | grep -v grep | grep -q "${pixelbin##*"/"} $redirip"; then
elog "pixelserv already running, skipping"
else
elog "Setting up pixelserv on $redirip"
"$pixelbin" $redirip 2>&1 | elog

I will test this for a week and see if anymore problems arise, but so far so good. One more thing. Would it make any sense to upgrade pixelserv-tls to use http/2?
 
Idle curiousity: why is your adblock script doing all this work? Why not use the rc.unslung in services-start, and the bridge in wan-start?

Just idle curiousity because I use ab-solution which seems to take care of a whole lot of business and then get out of the way.
 
I will test this for a week and see if anymore problems arise, but so far so good. One more thing. Would it make any sense to upgrade pixelserv-tls to use http/2?

I fail to see why it cannot to start in the previous test where entware's init.d script can do. I'll save your commands for later testing when I start debugging the crash issue.

http/2 is interesting. pixelserv already supports HTTP pipelining. A quick check says http/2 benefits pixelserv little. I know very little about http/2...so ready to be enlightened :) One optimisation that I wish to do in pixelserv-tls is to re-use connections that'll make SSL requests even faster.
 

Similar threads

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top