#813728 boinc-client: spews "No protocol specified" every second when active

Package:
boinc-client
Source:
boinc
Description:
core client for the BOINC distributed computing infrastructure
Submitter:
"Aaron M. Ucko"
Date:
2026-05-13 02:43:35 UTC
Severity:
minor
Tags:
#813728#5
Date:
2016-02-04 19:00:59 UTC
From:
To:
Since upgrading to boinc-client 7.6.22+dfsg-3 last night (when it hit
testing), I've observed it to log "No protocol specified" once a
second, except when suspended, per the log excerpt below.  As far as I
can tell, it otherwise continues to work fine, but these messages are
getting to be a nuisance.

Could you please take a look?

Thanks!

Feb  4 09:54:09 ghostwheel boinc[13404]: No protocol specified
Feb  4 09:54:10 ghostwheel boinc[13404]: No protocol specified
Feb  4 09:54:11 ghostwheel boinc[13404]: No protocol specified
Feb  4 09:54:12 ghostwheel boinc[13404]: 04-Feb-2016 09:54:12 [---] Suspending computation - computer is in use
Feb  4 10:04:17 ghostwheel boinc[13404]: No protocol specified
Feb  4 10:04:17 ghostwheel boinc[13404]: 04-Feb-2016 10:04:17 [---] Resuming computation
Feb  4 10:04:18 ghostwheel boinc[13404]: No protocol specified
Feb  4 10:04:19 ghostwheel boinc[13404]: No protocol specified
Feb  4 10:04:20 ghostwheel boinc[13404]: No protocol specified

#813728#10
Date:
2016-02-04 22:53:31 UTC
From:
To:
Howdy howdy,

I suspect this is related to XOpenDisplay() calls failing during idle
detection (due to the Xserver being inaccessible for some reason). It
shouldn't be harming performance of the boinc-client in any way, but
I'll look into suppressing the log spam when the relevant calls fail.
I had already pushed all the debug log info to an optional,
non-default flag, but it looks like the XSS library might have a
hard-coded printf somewhere.

The "idle_detection_debug" log flag can be put in cc_config.xml file:

<cc_config>
  <log_flags>
    <task>1</task>
    <file_xfer>1</file_xfer>
    <sched_ops>1</sched_ops>
    <coproc_debug>1</coproc_debug>
    <idle_detection_debug>1</idle_detection_debug>
  </log_flags>
</cc_config>

See

https://github.com/BOINC/boinc/pull/1453

for the relevant pull request where I reinstated and improved the
XSS-based idle detection.

Cheers,
Preston Maness

#813728#15
Date:
2016-02-05 03:27:44 UTC
From:
To:
Ugh. There's no clean way to do this that I can find, especially given
BOINC's custom handling of stdout and stderr. The closest solution
I've found that actually starts to be (thread, context, etc) safe is her
e:

https://stackoverflow.com/questions/5419356/redirect-stdout-stderr-to-a-
string

(The response from Sir Digby Chicken Caesar)

And it feels like complete overkill for what's going on. Other hacky
solutions exist --freopen() et.al.-- but I don't know if it'll step on
the toes of other parts of the boinc-client.

I can just do a poor man's timer with a decrement counter, only
retrying failing DISPLAYs every $number of minutes, which would ease
up on the amount of entries at least.

I'm going to keep mulling this over in case I can find out a better
way to handle this.

Cheers,
Preston Maness

#813728#20
Date:
2018-06-14 21:24:15 UTC
From:
To:
Preston Maness <aspensmonster@riseup.net> writes:

Thanks for looking into this report, and sorry for missing your
followups.  (Copying me would have helped.)  I wound up working around
the problem for a while by holding boinc-client at the last unaffected
version, but the hard libcurl4 transition recently forced my hand,
inspiring me to take another look. ;-)

The messages did in fact turn out to be coming from X library calls
(specifically, libxcb's read_setup by way of XOpenDisplay) rather than
from BOINC itself -- that's apparently the X server's cryptic reject
message for clients it can't authenticate.  Yes, your Xsession.d hook is
in place when I'm logged in graphically, but I'm often logged in only
remotely, or logged out altogether.

I've now configured my display manager to run this hook immediately upon
launching an X server, but that's not something boinc-client can
sensibly automate: there's no universal hook directory on this front,
and at least in the case of the display manager I've been using (classic
xdm), no hook directory at all -- I had to edit a script instead.

Instead, BOINC should accommodate the possible presence of local
displays it cannot actually use.  I suppose this possibility might
interfere with the ability to assign some work to GPUs, but that
probably wouldn't be much of a loss on this particular system, which has
Intel Sandy Bridge integrated graphics. :-)

To that end, please make X_display_values_initialize (toward the end of
client/hostinfo_unix.cpp) less aggressive.  Specifically, I'd suggest
exclusively (or at least primarily) polling displays corresponding to
active utmp entries.  (At least on my system, "w" lists the display name
under FROM, which I believe corresponds to ut_host.)

Thanks!

#813728#27
Date:
2022-02-23 21:12:40 UTC
From:
To:
Hi,

bug is still present in current version.

Thanks

#813728#32
Date:
2025-01-27 07:25:21 UTC
From:
To:
This bug still occurs.  Could the following idea from 2016 be implemented?

One attempt per second doesn't make sense.  If we make it once every few
minutes it will significantly reduce log noise.

#813728#37
Date:
2025-08-11 06:17:16 UTC
From:
To: