LIQUIBASE Locking our DB with duplicate IDs post migration – handling changesets

I apologize in advance if this is the wrong thread category but we recently migrated a DB and our liquibase configuration is seemingly not recognizing that there is a new path so Liquibase seems to be creating duplicate keys in our DB and it fails and locks up our DB and services. I think this is due to Liquibase trying to rectify the old Changesets with old path and can’t adjust to having a changeset with new db path? Anyone have any issues with migrating DBs and dealing with Liquibase changeset configuration that doesn’t lock up DBs?

synchronization – Help with reviewing locking logic for sync system

I’m implementing a sync algorithm where multiple apps sync files with a data source. Syncing is already working and has been for several years so there’s no issue with this.

Now I want to implement a way to lock the data source, to tell clients that they shouldn’t write to it anymore. This will be used to upgrade the data source – i.e. upgrade its structure, move folders around, etc. which needs to be done when nothing else is syncing.

So I came up with the following algorithm, inspired by [SQLite 3 locking mechanism][1], but changed to take into account that it’s network based.

There are three types of locks, and a client request a lock by POSTing a file to the data source. The locks are:

  • SYNCING: The client is syncing – any other client can still read or write to the data source. There can be multiple SYNCING locks.
  • PENDING: The client wants to acquire an exclusive lock on the data source – any other clients can still read or write to the data source, but no new SYNCING lock can be posted. There can be multiple PENDING locks.
  • EXCLUSIVE: The client has locked the data source – no other client can read or write to it. There can be only one EXCLUSIVE lock.

And it would work like so:

  • When a client starts syncing with the data source, they acquire a SYNCING lock. When a client finishes syncing, they release the SYNCING lock they’ve created
  • When a client needs to lock the data source, it first posts a PENDING lock. When a PENDING lock is present, no new SYNCING or PENDING locks can be posted. Clients that are syncing however can complete the process. The client who has acquired a PENDING lock will poll the data source and wait for all SYNCING lock to be released. When they are all gone, the client checks for all the PENDING locks – if there are others, the client checks the timestamps of these other locks and if his lock is not the oldest one, it deletes it and exit. Locking failed, and it will need to try again later.
  • If the PENDING lock is the oldest, then the client posts an EXCLUSIVE lock. At this point, no other client can post any other lock.

I’m wondering if I overlook something with this system, like I’m wondering if there could be some race conditions in some cases?

For now, I’m not dealing with clients that post a lock then crash, there will be some logic to clean up. At this point, I just want to make sure that this system will only allow one client to acquire an EXCLUSIVE lock. Any ideas?

When Trump began locking legal asylum-seekers of color in cages, he proved his racism. Daily reminder that Trump is a racist?

A ‘legal asylum seeker’ follows protocols clearly established by the U.S. government. The President ordered I.C.E. to lock up people illegally entering the country, often with very young children, (many of whom were not their own), after paying human traffickers, a.k.a. ‘coyotes’ to smuggle them across the border illegally. Those that survived the trip had marched those children more than 1,000 miles through jungles, deserts, ganglands and dangerous ghettos.

Try dragging someone else’s kid 1,000 miles on foot through urban Democrat controlled ghetto slums and then through deserts to California and explain to the cops that you are doing it for a ‘better life’ and see how fast you end up in a cage too, (and rightfully so).  Of course, if you survive at all, you will not be arrested until you get into Republican territory where people actually care about children, just like President Trump, who has several of his own.

The conditions they left behind in Central and South America are not nearly as dangerous as those faced during the journey and not much different than Democrat run ghettos here in the U.S. They feel right at home after they arrive there.

Once again ‘race’ has nothing to do with it. It is about Democrats looking for future voters and seekers of ‘entitlements’ in exchange for those votes. Many of their current constituents are dying from violence, drug abuse, alcoholism and sexual diseases and they need to be replaced. Like President Trump, I find the entire process sickening and perverse, especially the involvement and influencing of children. That is why we are addressing it.

1″He said to His disciples, “It is inevitable that stumbling blocks come, but woe to him through whom they come! 2″It would be better for him if a millstone were hung around his neck and he were thrown into the sea, than that he would cause one of these little ones to stumble.” (Luke 17:1-2).

You can go back to rioting,  burning down Starbucks and pissing on George Washington now. 

locking – Lock only a row in insert command sql server

I have this initial code below to create and insert some values on my table

IF (OBJECT_ID('dbo.Teste_Nolock') IS NOT NULL) DROP TABLE dbo.Teste_Nolock
CREATE TABLE dbo.Teste_Nolock (
    Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
    Nome VARCHAR(100)
)

INSERT INTO dbo.Teste_Nolock
VALUES ('User'), ('Name'), ('DataBase'), ('SQL Server'), ('Power BI'), ('SSRS'), ('SSIS'), ('SSAS'), ('Blog')

BEGIN TRANSACTION

UPDATE dbo.Teste_Nolock
SET Nome = 'Nolock Test'
WHERE Nome = 'User'

When I execute update without a commit or rollback, SQL Server is locking my table and i can’t execute the command SELECT * FROM dbo.Teste_Nolock WHERE Nome = 'SQL Server' for example. How can i solve this kind of problem?

locked out – Need help LOCKING a Moto G6 XT1925-13 after restoring stock OS

I had semi-bricked / soft-bricked my Motorola Moto G6 smartphone as explained here: https://forums.lenovo.com/t5/Moto-G6-Moto-G6-Plus-Moto-G6-Play/Need-help-unbricking-a-Moto-G6-XT1925-13-and-restoring-stock-OS/m-p/5013164

And I was stuck trying to install the stock ROM again. Finally, I was able to install the stock ROM onto the device, but I am unable to LOCK it again. The problem I’m facing because of that is that I will not able to upgrade the OS at all.

fastboot.exe oem lock
(bootloader) WARNING: This command erases all user data.
(bootloader) Please re-run this command to continue.
OKAY (  0.021s)
Finished. Total time: 0.029s

fastboot.exe oem lock
(bootloader) Check 'Allow OEM Unlock' in Android Settings > Developer
(bootloader) Options
OKAY (  0.029s)
Finished. Total time: 0.058s

When I boot into the OS, in the Setting > … > Developer Options, “OEM unlocking” is already unchecked, as “Bootloader is already unlocked”.

In its current state, I cannot upgrade the OS. It’s currently at: Android 9.

When trying to check for upgrades, it says:

Android version: 9
Current version: PPSS29.55-37-7-10
Security patch level: April 1, 2020

Here is what the bootloader displays (I’ve hidden only the serial number):

AP Fastboot Flash Mode (Secure)
BL: MBM-2.1-ali_retail-32ffece02ed-200416
Baseband: M450_23.31.10.89R ALI_INDIADSDS_CUST
Product/Variant: ali XT1925-13 64GB PVT2
Serial Number: (removed)
CPU: SDM450
eMMC: 64GB SAMSUNG RH64AB RV=08 PV=05 FV=0000000000000005
DRAM: 4GB SAMSUNG LP3 DIE:8Gb M5=01 M6=06 M7=00 M8=5F
Console (NULL): null
Tools Mode Config: DISABLED
Battery OK
flashing_unlocked
Transfer Mode: USB Connected

locked out – How to unlock my device after locking with “Find my device”?

I now have my phone(Xiaomi Redmi 4), but it’s locked from Google’s “find my device”. Everyone keeps talking about a password option in find my device, but nothing like that exists! How do I unlock my phone without erasing the data. Here’s all I see on googles find my device:

Text

Unable to get file locking working on NFS share with MacOS host and Ubuntu client

I am running ubuntu 20.04 server as a guest inside virtualbox on a macos Catalina 10.15.5 host. I am trying to share a folder on the mac into the guest machine as an nfs share. I have successfully mounted the share by using the following on the macos host

in /etc/exports on the host:

/path/to/share -alldirs -mapall=username

in /etc/fstab on the guest:

192.168.1.1>:/path/to/share /path/to/mountpoint nfs rw 0 0

With this I am able to read and write files in the shared directory no problem. The problem lies in the fact that I am running an application in the guest that is complaining about the fact it isn’t able to get a file lock on a file it is trying to write in the shared directory.
Fair enough, I was able to find a simple way to reproduce from the guest:

$ touch /path/to/mountpoint/testfile
$ flock -n --verbose /path/to/mountpoint/testfile -c cat
flock: /path/to/mountpoint/testfile: No locks available

I’ve been reading lots about failures in lockd or statd, but I’m running into my limits on knowing how to debug those services directly. One thing I was reading about ubuntu and installing nfs-common in particular is that it didn’t necessarily enable the rpc-statd service, so I did that:

$ sudo systemctl status rpc-statd
● rpc-statd.service - NFS status monitor for NFSv2/3 locking.
     Loaded: loaded (/lib/systemd/system/rpc-statd.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-06-12 21:49:39 UTC; 1h 50min ago
    Process: 672 ExecStart=/sbin/rpc.statd --no-notify $STATDARGS (code=exited, status=0/SUCCESS)
   Main PID: 673 (rpc.statd)
      Tasks: 1 (limit: 4621)
     Memory: 49.0M
     CGroup: /system.slice/rpc-statd.service
             └─673 /sbin/rpc.statd --no-notify

Jun 12 21:49:39 systemd(1): Starting NFS status monitor for NFSv2/3 locking....
Jun 12 21:49:39 rpc.statd(673): Version 1.3.3 starting
Jun 12 21:49:39 rpc.statd(673): Flags: TI-RPC
Jun 12 21:49:39 systemd(1): Started NFS status monitor for NFSv2/3 locking..

But the problem persists. Like I said I am starting to even struggle with how to debug or what to debug next. I have a gut feeling that the problem probably lies on the host side, but I would love advice for what to try next

Confused between 2 phase locking and 2 phase commit

I understand that both algorithms are very different, but what I don’t understand is whether they achieve the same thing in the end. 2PC is for atomic commits and 2PL is for serializable isolation. But don’t they both achieve the two things? don’t these goals imply each other in the end?

locking – SQL Server: When is a real shared (S, not IS) lock acquired on a page of a clustered index?

All the explanations I find seem to indicate that, without special hints – which is the case in our software -, shared locks are only acquired for keys, with IS locks at page and object level (and, yes, an S lock on the database).

Lock escalation of S row (key) locks escalates to the table (object) level, so no S page locks can result from this, if I’m correct here.

And foreign key constraint checking also gets (transaction-wide) S locks on keys, if I understand it correctly (see my other question for this).

However, we see lots of S (not IS) page locks in a simple ETL process (doing simple UPDATEs/INSERTs and some DELETEs from a connected server) – where could they come from?

Thanks!
Harald M.