public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Wladimir <laanwj@gmail•com>
To: grarpamp <grarpamp@gmail•com>
Cc: bitcoin-development@lists•sourceforge.net
Subject: Re: [Bitcoin-development] RPC and signals - processing priority
Date: Sat, 16 Jun 2012 09:04:34 +0200	[thread overview]
Message-ID: <CA+s+GJBqjvSkJp3dv_ZoeBh4QqF7z483PpCkCqsDZfQYGcJ65Q@mail.gmail.com> (raw)
In-Reply-To: <CAD2Ti2-wqMwxJ6iU-z2kYjUjc4GkYMo0dWjL4rcPr2DjODfirQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1073 bytes --]

On Fri, Jun 15, 2012 at 10:55 PM, grarpamp <grarpamp@gmail•com> wrote:

> While happily processing these:
> received block ...
> SetBestChain: new best=...  height=...  work=...
> ProcessBlock: ACCEPTED
>
> bitcoind very often refuses to answer rpc queries such as getinfo/stop,
> or signals such as kill/ctrl-c. It even registers:
>  ThreadRPCServer method=getinfo/stop
> in the debug log. But the action doesn't happen as expected.
>
> Shouldn't it be checking and processing all user interrupts like
> once per block and doing the chain in the background?
>


This has nothing to do with priority and "user interrupts", but with the
locks on the wallet and client. Every RPC command takes both locks, and
releases them only when finished.

Shutting down also requires both locks, so the operations will be
serialized.

This protects the database and critical data structures. Sure, there might
be some cases in which the locks are not necessary, or read/write locks
could be used instead to improve concurrency, but this has to be approached
really carefully.

Wladimir

[-- Attachment #2: Type: text/html, Size: 1529 bytes --]

      reply	other threads:[~2012-06-16  7:04 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-15 20:55 grarpamp
2012-06-16  7:04 ` Wladimir [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CA+s+GJBqjvSkJp3dv_ZoeBh4QqF7z483PpCkCqsDZfQYGcJ65Q@mail.gmail.com \
    --to=laanwj@gmail$(echo .)com \
    --cc=bitcoin-development@lists$(echo .)sourceforge.net \
    --cc=grarpamp@gmail$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox