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!

By V34 (HunterZ version)

#define CHAR_BUF_SIZE 4095 // surprising how big requests can be with cookies and lengthy yahoo url!

8kB might be me changing it two years ago but I cant' remember one thing about it and that's scary...

I like the current approach of incrementing by 4kB. Majority of requests will be one malloc() of 4kB. realloc() can extend or shrink with old content preserved.
 
I'm getting lots of these 501 null errors ever since I updated pixelserv-tls to the kk version thats on entware-ng on mips. I didn't have this problem with the KJ version. https://imgur.com/a/OQ1pL

Screenshot of the serv stats page.
https://i.imgur.com/s80CRLF.png
This is while using the v35.HZ12.Kk compiled: Sep 26 2017 00:12:37 on entware-ng mips

I have switched back to v35.HZ12.Kj compiled: May 27 2017 22:50:38 I will edit my post again with the serv stats page screenshot when the same amount of time has passed.
Here's the screenshot of the serv stats page while using the KJ version : https://i.imgur.com/XRPQYpF.png No where near the amount of bads.
 
Last edited:
I'm getting lots of these 501 null errors ever since I updated pixelserv-tls to the kk version thats on entware-ng on mips.
I had those as well, with some frequency with the ARM binary from entware-ng. Haven’t really noticed it on Kl test builds.
 
@tom-

thanks for signing up SNBforum, and providing your feedback.

From your servstats page, more than 11k bad requests out of 15k total. That indicates something systematically wrong. The bad requests are the 501 null errors.

Some clients on your LAN send lots of ^V^C^A as the start of a request message. It could be truly bad requests or version KK has a message parsing bug.

Can you also try KL-test4 and see if observe the same amount of bad's?
 
A survey..

If people are building pixelserv-tls or aware of a build for a platform with an audience regardless big or small, may you share with me? I could add it to this supported platforms wiki.

Also anyone out there still building with fork() instead of pthread? I'm considering purging the fork() code as part of code refactoring/cleansing in a future version, maybe in M or N. Like to hear justifications to preserve it.
 
@tom-

thanks for signing up SNBforum, and providing your feedback.

From your servstats page, more than 11k bad requests out of 15k total. That indicates something systematically wrong. The bad requests are the 501 null errors.

Some clients on your LAN send lots of ^V^C^A as the start of a request message. It could be truly bad requests or version KK has a message parsing bug.

Can you also try KL-test4 and see if observe the same amount of bad's?

Thanks for replying to my issue. And for your continued work on pixelserv-tls. I have edited my previous post with the second screenshot while using version KJ. I will give this test build a go. And run it for the same amount of time and post back with my results.

One issue so far with the mips version. I tried using the init.d to start it, but neither start. Dynamic just says failed. And the static looks like it starts with the normal done, but when you check the status its dead. And serv stats page isn't reachable. Also, I noticed there's big size differences from the ones downloaded from the github link provided compared to the 56,872b of the KJ version I was using and the kk version from entware-ng mips. Maybe my wordings incorrect with mips and mipsel. Thought they were the same. I'm using mipsel entware-ng.
 
Last edited:
I tried using the init.d to start it, but neither start. Dynamic just says failed.
I may be completely misunderstanding your problem - if so ignore this. But if you have pixelserv installed from entware, all you have to do to run a new test version is replace the existing /opt/bin/pixelserv-tls with the new binary. I usually rename the existing (to pixelserv-tls-Kk for instance) to revert on the fly if I want.
 
I may be completely misunderstanding your problem - if so ignore this. But if you have pixelserv installed from entware, all you have to do to run a new test version is replace the existing /opt/bin/pixelserv-tls with the new binary. I usually rename the existing (to pixelserv-tls-Kk for instance) to revert on the fly if I want.
That's pretty much what I do, but the ones in the test build didn't work for me for some reason. Both the dynamic and static. I've went back to the kj version for now. I'm running this on tomato. Using entware-ng mipsel.
 
That's pretty much what I do, but the ones in the test build didn't work for me for some reason. Both the dynamic and static. I've went back to the kj version for now. I'm running this on tomato. Using entware-ng mipsel.
I don’t have a mips router to test it for you, unfortunately. One idea - forgive me if it’s stupid.. the pixelserv binaries in the zip files I’ve been downloading from kazoo.ga aren't executable by default. I have to chmod +x them. Maybe check that.
 
  • Like
Reactions: DME
I don’t have a mips router to test it for you, unfortunately. One idea - forgive me if it’s stupid.. the pixelserv binaries in the zip files I’ve been downloading from kazoo.ga aren't executable by default. I have to chmod +x them. Maybe check that.
I've managed to get it working. Not sure what was causing it not to, but after I removed all the args, but the ip I wanted it to be on. It worked. Not sure why that's the case when those same args worked on the kj version.
Thanks for your help.
Incase your wondering what args. -p 80 -p 8080 -k 443 -z /opt/etc/ssl/private/pixelserv -u root -l
 
Incase your wondering what args. -p 80 -p 8080 -k 443 -z /opt/etc/ssl/private/pixelserv -u root -l
I was actually about to ask. I’ve never used the -z flag, and I’ve used -u but with admin, but I am guessing maybe that’s just different in tomato vs asuswrt. The -l flag requires a logging level though, I think. If that’s not a typo, you should specify a level up to 5
 
I was actually about to ask. I’ve never used the -z flag, and I’ve used -u but with admin, but I am guessing maybe that’s just different in tomato vs asuswrt. The -l flag requires a logging level though, I think. If that’s not a typo, you should specify a level up to 5
The -z flag is to specify where the certs are. I like to keep everything organized. Tomato uses root instead of admin. And I figured out that both the -u flag and the -l flag were the cause of this version not starting. I wasn't aware a level had to be specified. I've put just the simple -l flag and its worked fine. I'll try adding a number after it and see if that changes anything. Do you have any more info on what each level of logging outputs? I don't want to flood my logs too much.
Edit : nvm I see the different numbers on the servstats page adding a number did the trick. Everything works now. Guess now that leaves reporting back if I have the null issue again.
 
Last edited:
New issue. It was up for an 1hr and a half, but crashed. Not sure why. I didn't see anything in the logs. So, I started it again with logging level 5. To hopefully find out why. I'll edit this post if I see anything. This is with the kl test 4 version.
 
I was having memory issues on occasions where pixelserv was handling high amounts of requests. Key indicator if you've having the problem I was having is on the /servstats page, you'll see the "kcc" counter doesn't decrement back down to 1 over time, rather it stays high. Enabling swap mitigates the issue for me.
 
@tom-

I compiled a mipsel version using Entware-ng's toolchain and libraries. Can you get "pixelserv-tls.Kl-test4.Entware-ng.mipsel.zip" from Github and try it?

The original MIPS version was built with asuswrt toolchain and libraries. There could be unknown compatibility issue with your environment.
 
Last edited:
This is my latest session of a normal run of Kl-test4 for over 2 days. First time seeing OPTIONS and HEAD requests registered at the same time!

My 'tav' is in hundreds of milliseconds because I have remote clients over cellular links or hundreds kilometres away. I wonder what 'tav' people get if from LAN only over a few days' of use.

https://i.imgur.com/hIMJsrJ.png
 
@tom-

I compiled a mipsel version using Entware-ng's toolchain and libraries. Can you get "pixelserv-tls.Kl-test4.Entware-ng.mipsel.zip" from Github and try it?

The original MIPS version was built with asuswrt toolchain and libraries. There could be unknown compatibility issue with your environment.
Okay, thanks, @kvic . Il change to it now. Here's my serv stats while running the kl test 4 mips a second time. No random crash the second time. https://i.imgur.com/V5ogElo.png

kl test 4 mipsel
Dynamic version wouldn't start no matter what I tried. Static version did. It was executable and all that jazz. Set to 0777. When using the mips version dynamic worked. hmm..
Not sure which would be better to run static or dynamic.
 
Last edited:
This is my latest session of a normal run of Kl-test4 for over 2 days. First time seeing OPTIONS and HEAD requests registered at the same time!

My 'tav' is in hundreds of milliseconds because I have remote clients over cellular links or hundreds kilometres away. I wonder what 'tav' people get if from LAN only over a few days' of use.

https://i.imgur.com/hIMJsrJ.png
All of my serv stats are lan and wireless lan clients. If this mipsel version you just compiled goes okay. I can provide a similar time frame of serv stats to compare.
 
kl test 4 mipsel
Dynamic version wouldn't start no matter what I tried. Static version did. It was executable and all that jazz. Set to 0777. When using the mips version dynamic worked. hmm..
Not sure which would be better to run static or dynamic.

I'm working in the dark since I don't have a mipsel Entware-ng device to test. So sorry for all the trials.

I just uploaded a second build of Kl-test4 for mipsel Entware-ng, pixelserv-tls.Kl-test4.Entware-ng.mipsel.2.zip. Can you try if this dynamic version starts okay?
 
I'm working in the dark since I don't have a mipsel Entware-ng device to test. So sorry for all the trials.

I just uploaded a second build of Kl-test4 for mipsel Entware-ng, pixelserv-tls.Kl-test4.Entware-ng.mipsel.2.zip. Can you try if this dynamic version starts okay?
No worries. I appreciate your hard work. Ill test it now.
 

Similar threads

Latest threads

Support SNBForums w/ Amazon

If you'd like to support SNBForums, just use this link and buy anything on Amazon. Thanks!

Sign Up For SNBForums Daily Digest

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