If a watchdog entry should be written during a different MySQL table is locked it will fail with MySQL error "Table 'watchdog' was not locked with LOCK TABLES". If a watchdog entry should be written during an open transaction and the transaction will be rolled back, the watchdog entry will be removed as well. Both cases could be avoided if we use a dedicated database connection for writing watchdog entries.
The solution is to declare a dedicated database connection which will not be established until required.
If a watchdog entry is written as part of a transaction it should probably be rolled back with that transaction. But for entries of severity WATCHDOG_ERROR or above we should assume that they should be always written. But his behavior has to be optionally configurable in settings.php.
Original issue: https://drupal.org/node/298768
Recent comments
In a blog post titled "Github Tips and Tricks for Contrib Maintainers", I'd like to see some of the following topics: When is the README sufficient for documentation? When should...
Github Tips and Tricks for Contrib Maintainers
Thanks Alejandro. That was the clues I needed.
Ubercart - Programmatically add product to cart and straight to Checkout
Have you tried uc_cart_add_item()? You need to provide the nid of the product. Then you can use backdrop_goto('cart/checkout'); to send the user to the checkout screen. uc_cart_add_item...
Ubercart - Programmatically add product to cart and straight to Checkout