https://datastorageguy.com Consulting Services and Tech-Tips from Ben Patridge Wed, 26 Nov 2025 18:07:22 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.1 https://datastorageguy.com/wp-content/uploads/2025/11/cropped-dsgplatter-32x32.png https://datastorageguy.com 32 32 189268276 On MacOSX Sequoia Key Repeat Not working for the letter J and K https://datastorageguy.com/2025/11/26/on-macosx-sequoia-key-repeat-not-working-for-the-letter-j-and-k/ Wed, 26 Nov 2025 17:30:59 +0000 https://datastorageguy.com/?p=337 As a hopeless Linux-A-Holic I spend my life in Terminal.

However on OSX Sequoia it drove me Bat Sheep crazy that key repeat would not work when in the VI editor using the letter J and K.

I tried numerous 'fixes' and the only solution that I found that worked was the following:

Open iTerm2 and sudo to root

defaults write -g ApplePressAndHoldEnabled -bool false

Modify the key repeat speed for a shorter delay

defaults write -g InitialKeyRepeat -int 10

Restart Terminal.

I use Devolutions Remote Desktop Manager and the above did not work.

With RDM I had to upgrade to a later version and disable on-hold suggestions via the UI

The above was discussed in the following Tech Article on their website

]]>
337
Faking no read or write errors on a disk in Linux https://datastorageguy.com/2025/11/08/faking-no-read-or-write-errors-on-a-disk-in-linux/ Sat, 08 Nov 2025 23:18:06 +0000 https://datastorageguy.com/?p=334

I have a major Linux Geek Filesystem hack I absolutely had to share express to those who would get and appreciate!

Here goes,

I have had this issue I have been working to resurrect a 6+2 raidset with 3 bad disks..

In a 6+2 raidset when 2 disks are bad then the raidset is degraded but can function, However when 3 disks are offline the raidset will not function and will be rendered offline there for the data is unaccessible

2 of the disks were marked as failed and 1 drive was rebuilding so the filesystem would not bring the raidset online

In this case, the 2 disks were offline because the disk read/write error counts exceeded the threshold allowable for us to keep the disk in the raidset.

I noted that we (Tintri TXOS) fail the disks when the read/write or other values exceed a specific threshold.

My intention was to find a way to make a couple disks online temporarily that had already been marked failed.

The disks do not have any hardware IO or MCE (Machine Check Errors) so I felt there must be a way.

I did not have a way to just replace them because there are not enough spares to rebuild the raidset. Also the supported drives were EOL.

So in this case I had to find a way to unfail the disks so I could temporarily make them online so we can evacuate the data!

So here is my hack…

In Linux the disk errors are kept in

/sys/block/sdX/device/read_err (cor write_err)

Because this is the Linux “sysfs” file system you cannot write to those files to change or clear it those values are kept on the disk where they are read here upon disk insertion and it is read by the kernel

Sooo

My crazy workaround was to make a script that would mimic the data in each of those files.

For example the filesystem comes looks like this:

# cat /tmp/fake_sdX/read_err
0 0 0 7 0 20 0 0 [ 0 0 0 0 0 ]

I would make 3 directories and 3 empty files for the disk

/tmp/fake_sdX/read_err
/tmp/fake_sdX/write_err
/tmp/fake_sdX/other_err

I stop the file system so all of the disks are unmounted

Then echo the above values in there:

echo -e “0 0 0 0 0 0 0 0 [ 0 0 0 0 0 ]” > /tmp/fake_sdX/read_err

echo -e “0 0 0 0 0 0 0 0 [ 0 0 0 0 0 ]” > /tmp/fake_sdX/write_err

echo -e “0 0 0 0 0 0 0 0 [ 0 0 0 0 0 ]” > /tmp/fake_sdX/other_err

Then I mount the actual files to the temporary fake files:

Meaning I mount:

/sys/block/sdX/device/read_err —-> /tmp/fake_sdX/read_err

/sys/block/sdX/device/write_err—-> /tmp/fake_sdX/write_err

/sys/block/sdX/device/other_err —-> /tmp/fake_sdX/other_err

Then I verify the disk errors are now cleared and use my fake zeroed values.

Then I restart the file system

The filesystem comes up and the disks because the 2 disks previously marked failed due to threshold errors are now temporarily active !

]]>
334
Using grep to search a file using multiple words as boolean AND OR condition https://datastorageguy.com/2024/09/10/using-grep-to-search-a-file-using-multiple-words-as-boolean-and-or-condition/ Tue, 10 Sep 2024 22:37:52 +0000 https://datastorageguy.com/?p=312

Command Overview

The following extended grep  (grep -E) example shows how to search a log files for

  1. Any line containing the words
    1. init
      AND
    2. SNMP OR tomcat 
  2. Any line containing either
    1. start_tomcat
      OR
    2. stop_tomcat
      OR
    3. start_snmp
      OR
    4. stop_snmp
  3. excluding any match with the word INT

Example

# grep -E "init.*(snmp|tomcat)|(start|stop)_(tomcat|snmp)" debug.log |grep -v INT 2024-09-10T13:54:36.686053-07:00 nec-6090-01#b stop_tomcat[4019]: running, pid file: /var/run/jsvc.pid , timeout interval: 15 secs 2024-09-10T13:54:36.687429-07:00 nec-6090-01#b stop_tomcat[4019]: pid: 1651 2024-09-10T13:54:36.704588-07:00 nec-6090-01#b stop_tomcat[4019]: init-+-AuthenticationS---7*[{Authentication}] 2024-09-10T13:54:36.705498-07:00 nec-6090-01#b stop_tomcat[4019]: |-HAMon---15*[{HAMon}] 2024-09-10T13:54:36.706346-07:00 nec-6090-01#b stop_tomcat[4019]: |-PlatMon---13*[{PlatMon}] 2024-09-10T13:54:36.707142-07:00 nec-6090-01#b stop_tomcat[4019]: |-ProcMon-+-realstore---98*[{realstore}] 2024-09-10T13:54:36.707881-07:00 nec-6090-01#b stop_tomcat[4019]: | 2024-09-10T13:54:36.708690-07:00 nec-6090-01#b stop_tomcat[4019]: `-9*[{ProcMon}] 2024-09-10T13:54:36.709454-07:00 nec-6090-01#b stop_tomcat[4019]: |-agetty 2024-09-10T13:54:36.710315-07:00 nec-6090-01#b stop_tomcat[4019]: |-cimserver---2*[{cimserver}] 2024-09-10T13:54:36.711077-07:00 nec-6090-01#b stop_tomcat[4019]: |-corewatch 2024-09-10T13:54:36.711792-07:00 nec-6090-01#b stop_tomcat[4019]: |-crond 2024-09-10T13:54:36.712541-07:00 nec-6090-01#b stop_tomcat[4019]: |-dbus-daemon 2024-09-10T13:54:36.713388-07:00 nec-6090-01#b stop_tomcat[4019]: |-java---21*[{java}] 2024-09-10T13:54:36.714237-07:00 nec-6090-01#b stop_tomcat[4019]: |-jsvc-+-jsvc 2024-09-10T13:54:36.714977-07:00 nec-6090-01#b stop_tomcat[4019]: | 2024-09-10T13:54:36.715776-07:00 nec-6090-01#b stop_tomcat[4019]: `-jsvc---62*[{jsvc}] 2024-09-10T13:54:36.716540-07:00 nec-6090-01#b stop_tomcat[4019]: |-jsvc-+-jsvc 2024-09-10T13:54:36.717367-07:00 nec-6090-01#b stop_tomcat[4019]: | 2024-09-10T13:54:36.718192-07:00 nec-6090-01#b stop_tomcat[4019]: `-jsvc---109*[{jsvc}] 2024-09-10T13:54:36.720254-07:00 nec-6090-01#b stop_tomcat[4019]: |-lldpd---lldpd 2024-09-10T13:54:36.721010-07:00 nec-6090-01#b stop_tomcat[4019]: |-6*[mingetty] 2024-09-10T13:54:36.721717-07:00 nec-6090-01#b stop_tomcat[4019]: |-ntpd---ntpd 2024-09-10T13:54:36.722473-07:00 nec-6090-01#b stop_tomcat[4019]: |-rpcbind 2024-09-10T13:54:36.723252-07:00 nec-6090-01#b stop_tomcat[4019]: |-rsyslogd-+-log_scrub.py 2024-09-10T13:54:36.724039-07:00 nec-6090-01#b stop_tomcat[4019]: | 2024-09-10T13:54:36.724822-07:00 nec-6090-01#b stop_tomcat[4019]: `-9*[{rsyslogd}] 2024-09-10T13:54:36.725621-07:00 nec-6090-01#b stop_tomcat[4019]: |-runuser---postmaster---18*[postmaster] 2024-09-10T13:54:36.726416-07:00 nec-6090-01#b stop_tomcat[4019]: |-runuser---postmaster---16*[postmaster] 2024-09-10T13:54:36.727143-07:00 nec-6090-01#b stop_tomcat[4019]: |-sh---stop_tomcat---pstree 2024-09-10T13:54:36.727860-07:00 nec-6090-01#b stop_tomcat[4019]: |-sshd-+-sshd---rsync.bin 2024-09-10T13:54:36.728562-07:00 nec-6090-01#b stop_tomcat[4019]: | 2024-09-10T13:54:36.729270-07:00 nec-6090-01#b stop_tomcat[4019]: `-sshd---bash---service---tomcat---initctl 2024-09-10T13:54:36.730039-07:00 nec-6090-01#b stop_tomcat[4019]: |-thriftshell---11*[{thriftshell}] 2024-09-10T13:54:36.730807-07:00 nec-6090-01#b stop_tomcat[4019]: |-udevd---2*[udevd] 2024-09-10T13:54:36.731537-07:00 nec-6090-01#b stop_tomcat[4019]: |-watchdog 2024-09-10T13:54:36.732229-07:00 nec-6090-01#b stop_tomcat[4019]: `-winbindd---winbindd 2024-09-10T13:54:37.735365-07:00 nec-6090-01#b stop_tomcat[4019]: Tomcat is stopped 2024-09-10T13:54:37.738757-07:00 nec-6090-01#b init[4098]: tomcat post-start 2024-09-10T13:54:39.366904-07:00 nec-6090-01#b start_tomcat[4097]: LOG-TOMCAT-0003: TASKSET options 2024-09-10T13:54:39.369087-07:00 nec-6090-01#b start_tomcat[4097]: Set JAVA options -Xms128M -Xmx2800M -XX:MaxMetaspaceSize=140M -XX:ReservedCodeCacheSize=140M -XX:+UseCodeCacheFlushing -Xss512k -XX:+UseStringDeduplication -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=*:5005 -XX:+PrintClassHistogram -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/corefiles -XX:ErrorFile=/var/corefiles/hs_err_pid<>.log -Dfile.encoding=UTF8 -Dcom.tintri.platform.productid=BR2 -Dhttps.protocols=TLSv1.2 -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false 2024-09-10T13:54:39.396222-07:00 nec-6090-01#b start_tomcat[4097]: Starting server using jsvc. 2024-09-10T13:55:11.215363-07:00 nec-6090-01#b stop_snmp[15117]: Stopping snmp agent 2024-09-10T13:55:12.217316-07:00 nec-6090-01#b stop_snmp[15117]: SNMP agent is stopped 2024-09-10T13:55:12.246235-07:00 nec-6090-01#b start_snmp[15416]: Set JAVA options -Xms64M -Xmx128M -XX:MaxMetaspaceSize=48M -XX:ReservedCodeCacheSize=48M -XX:+UseCodeCacheFlushing -Xss512k -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=*:5006 -XX:+UseStringDeduplication -XX:+PrintClassHistogram -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/corefiles -Dcom.tintri.platform.productid=BR2 -Dfile.encoding=UTF8 2024-09-10T13:55:12.247242-07:00 nec-6090-01#b start_snmp[15416]: Starting SNMP agent using jsvc. 2024-09-10T14:27:39.615636-07:00 nec-6090-01#b vmstore[2582]: HA: [2961] [tid 4996] HA-STATE: errorDetected: module [1], current state [104] indicates Error 2024-09-10T14:27:39.615698-07:00 nec-6090-01#b vmstore[2582]: HA: [2962] [tid 4996] HA-STATE: setStatusLocked: setting nodeRole to [SECONDARY], nodeStatus to [DISCONNECTED] 2024-09-10T14:27:39.690762-07:00 nec-6090-01#b vmstore[2582]: HA: [2967] [tid 5043] HA-STATE: errorDetected: module [5], current state [104] indicates Error 2024-09-10T14:27:40.191327-07:00 nec-6090-01#b vmstore[2582]: HA: [2969] [tid 5020] HA-STATE: setStatusLocked: setting nodeRole to [PRIMARY], nodeStatus to [SELECTED] 2024-09-10T14:27:40.312790-07:00 nec-6090-01#b vmstore[2582]: HA: [2970] [tid 2911] HA-STATE: disconnecting Secondary; becoming Primary 2024-09-10T14:27:40.313379-07:00 nec-6090-01#b vmstore[2582]: HA: [2980] [tid 2911] HA-STATE: notified HA modules to become Primary 2024-09-10T14:27:40.914011-07:00 nec-6090-01#b vmstore[2582]: HA: [3672] [tid 2911] HA-STATE: becomePrimary: invoked 2024-09-10T14:27:40.914059-07:00 nec-6090-01#b vmstore[2582]: HA: [3673] [tid 2911] HA-STATE: becomePrimary: eligible to be Primary due to NVRAM gen num [4] >= current disk gen num [4] 2024-09-10T14:27:40.914099-07:00 nec-6090-01#b vmstore[2582]: HA: [3674] [tid 2911] HA-STATE: updateGenNum: STARTUP: writing intended gen num [5] 2024-09-10T14:27:40.956406-07:00 nec-6090-01#b vmstore[2582]: HA: [3676] [tid 2911] HA-STATE: updateGenNum: writing NVRAM gen num as [5] 2024-09-10T14:27:40.999307-07:00 nec-6090-01#b vmstore[2582]: HA: [3681] [tid 2911] HA-STATE: setStatusLocked: setting nodeRole to [PRIMARY], nodeStatus to [RECOVERING] 2024-09-10T14:27:46.172490-07:00 nec-6090-01#b vmstore[2582]: HA: [7846] [tid 2911] HA-STATE: primaryBeginAccepting: invoked 2024-09-10T14:27:46.172972-07:00 nec-6090-01#b vmstore[2582]: HA: [7856] [tid 2911] HA-STATE: setStatusLocked: setting nodeRole to [PRIMARY], nodeStatus to [ACTIVE] 2024-09-10T14:27:46.173513-07:00 nec-6090-01#b vmstore[2582]: HA: [7868] [tid 746] HA-STATE: haManagerListenerThread: invoked 2024-09-10T14:28:46.213586-07:00 nec-6090-01#b vmstore[2582]: HA: [10685] [tid 746] HA-STATE: syncComplete: module [5] indicates SyncComplete 2024-09-10T14:28:47.113674-07:00 nec-6090-01#b vmstore[2582]: HA: [10815] [tid 4997] HA-STATE: syncComplete: module [1] indicates SyncComplete
]]>
312
Use sed to replace last character after matching a line https://datastorageguy.com/2024/05/14/use-sed-to-replace-last-character-after-matching-a-line/ Tue, 14 May 2024 21:08:19 +0000 https://datastorageguy.com/?p=308 If you are a coder like me we tend to discover after we have made a script that we need to change something on multiple lines.

Recently I have a script whereby added a "log_message" function which would echo a phrase.

However, I wanted to append a double parenthesis after the last character in the entire file.

For example.

Inside of myscript.sh I have the following

# grep Beginning myscript.sh
        log_message "Beginning function enableOrDisableRealstore"
        log_message "Beginning function modulePowerCycleChassis"
        log_message "Beginning function checkFipsLicense"
        log_message "Beginning function enableFips"
        log_message "Beginning function backupFips"
        log_message "FIPS: Beginning function isFipsEnabled"
        log_message "Beginning function isEncryptionEnabled"
        log_message "Beginning function isControllerPrimary"
        log_message "Beginning function isPeerControllerUpAndExecuting"
        log_message "Beginning function preZeroizeControllersValidation"
        log_message "Beginning function preZeroizeHaValidation"
        log_message "Beginning function preZeroizeDataCollection"
        log_message "Beginning function validateMachine"
        log_message "Beginning function cleanupDatabases"
        log_message "Beginning function isTxosRunning"
        log_message "Beginning function cleanupTunables"
        log_message "Beginning function checkControllerFailLogs"
        log_message "Beginning function getNetworkInfo"
        log_message "Beginning function getMDRaidInfo"
        log_message "Beginning function eraseSsdZion"
        log_message "Beginning function secureEraseSsd"
        log_message "Beginning function _retry_secerase for $disk"
        log_message "Beginning function _powercycle_disk_slot for $disk"
        log_message "Beginning function check_dd_process"
        log_message "Beginning function writeZeroesToHdd"
        log_message "Beginning function verifyBootDomPartition"
        log_message "Beginning function listDOM"
        log_message "Beginning function makePartitionsOnSSD"
        log_message "Beginning function formatRealstore"
        log_message "Beginning function updateDiskSignature"
        log_message "Beginning function deleteLogsAndCores"
        log_message "Beginning function resetRootPassword_default"
        log_message "Beginning function resetRootPassword_internal"
        log_message "Beginning function resetRootPassword"
        log_message "Beginning function resetAdminPasswordToSerialNumber"
        log_message "Beginning function validateSerialNumber"

My goal was to replace the last quote with ()" so that each line would look like

log_message "Beginning function validateSerialNumber()"

This is easily resolved using sed!

# sed -i.bak 's/\(.*Beginning.*\)[^ ]$/\1\(\)\"/' myscript.sh

the above backs up myscript.sh to myscript.sh.bak

Then it replaces the last quote with ()"

The result is

# grep Beginn myscript.sh
        log_message "Beginning function enableOrDisableRealstore()"
        log_message "Beginning function modulePowerCycleChassis()"
        log_message "Beginning function checkFipsLicense()"
        log_message "Beginning function enableFips()"
        log_message "Beginning function backupFips()"
        log_message "FIPS: Beginning function isFipsEnabled()"
        log_message "Beginning function isEncryptionEnabled()"
        log_message "Beginning function isControllerPrimary()"
        log_message "Beginning function isPeerControllerUpAndExecuting()"
        log_message "Beginning function preZeroizeControllersValidation()"
        log_message "Beginning function preZeroizeHaValidation()"
        log_message "Beginning function preZeroizeDataCollection()"
        log_message "Beginning function validateMachine()"
        log_message "Beginning function cleanupDatabases()"
        log_message "Beginning function isTxosRunning()"
        log_message "Beginning function cleanupTunables()"
        log_message "Beginning function checkControllerFailLogs()"
        log_message "Beginning function getNetworkInfo()"
        log_message "Beginning function getMDRaidInfo()"
        log_message "Beginning function eraseSsdZion()"
        log_message "Beginning function secureEraseSsd()"
        log_message "Beginning function _retry_secerase for $disk()"
        log_message "Beginning function _powercycle_disk_slot for $disk()"
        log_message "Beginning function check_dd_process()"
        log_message "Beginning function writeZeroesToHdd()"
        log_message "Beginning function verifyBootDomPartition()"
        log_message "Beginning function listDOM()"
        log_message "Beginning function makePartitionsOnSSD()"
        log_message "Beginning function formatRealstore()"
        log_message "Beginning function updateDiskSignature()"
        log_message "Beginning function deleteLogsAndCores()"
        log_message "Beginning function resetRootPassword_default()"
        log_message "Beginning function resetRootPassword_internal()"
        log_message "Beginning function resetRootPassword()"
        log_message "Beginning function resetAdminPasswordToSerialNumber()"
        log_message "Beginning function validateSerialNumber()"
]]>
308
Viewing contents of an open filehandle on a deleted file https://datastorageguy.com/2024/05/01/viewing-contents-of-an-open-filehandle-on-a-deleted-file/ Wed, 01 May 2024 22:35:32 +0000 https://datastorageguy.com/?p=305 There are times when you may unintentionally delete a file which is being written to.

When this occurs it will leave an Open Filehandle.

In Linux open filehandles may be viewed via the 'lsof' command.

# lsof +L1

In the following example here was the situation.

  1. I executed a script using nohup
    (i.e.   "nohup vmstore-tnt.sh  &")   
  2. File /root/nohup.out was being written to.
  3. I deleted the file nohup.out
  4. Thus this left an open filehandle.
$ lsof +L1
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NLINK    NODE NAME
vmstore-t 57520 root    1w   REG  252,1    26136     0 1671175 /root/nohup.out (deleted)
vmstore-t 57520 root    2w   REG  252,1    26136     0 1671175 /root/nohup.out (deleted)

Merely recreating the file via (touch /root/nohup.out) will not restore the file

To view the contents of the file that was deleted, you have to locate the Process ID (PID) from the above 'lsof' output.

(The above shows the PID as 57520)

Now wee can look for the fd (file descriptors) in Linux /proc pseudo filesystem by looking in /proc/<pid>/fd

# ls /proc/57520/fd
0  1  2  255
NUMBER MEANING
0Standard Input
1Standard Output
2Standard Error
255The File

*note: There may be additional File Descriptor Numbers which are beyond  the scope of this document.

Now, to view the real-time file progress you may issue

# cat /proc/57520/fd/1

To view any standard error  real-time you may view

# cat /proc/57520/fd/2

If you wish to temporarily restore the standard output of the file so you can monitor the output, you may create a 'soft' link via:

# ln -s /proc/57520/fd/1  /root/nohup.out

You may verify the link via

$ ls -Al nohup.out
lrwxrwxrwx 1 root root    16 May  1 15:02 nohup.out -> /proc/57520/fd/1

*note: Once the process stops you will have to delete the soft link!

When you try to view the contents you will see

# tail nohup.out
tail: cannot open `nohup.out' for reading: No such file or directory

Therefore remove the file

# rm nohup.out

We should no longer see any open files

# lsof +L1
#
]]>
305
MACOS – Clicking on webpage automatically jumps to top of the page https://datastorageguy.com/2024/02/21/macos-clicking-on-webpage-automatically-jumps-to-top-of-the-page/ Wed, 21 Feb 2024 21:21:46 +0000 https://datastorageguy.com/?p=298 I recently encountered yet another MAC Madness issue!

I changed out my wired MacBook extended keyboard for a used Apple 'Magic' Keyboard.

Well the 'magic' was that it introduced an unwanted 'feature' whereby when I switch between external monitors, and the webpage in view is scrolled downward, the page would automagically jump to the top of the page. I am at Geek Level 4 in that I have 3 external monitors. So switching between them would move any object on that page automatically to the top; text box, text editor, webpage/etc.

After trolling the Google Verse I didn't find anything useful.

So after hacking at the Settings on MacOS Ventura I figured it out.

I went to Settings --> Accessibility --> Keyboard

Then uncheck Full Keyboard Access

After that I was back in business.

]]>
298
Cscope search results are invisible https://datastorageguy.com/2024/02/13/cscope-search-results-are-invisible/ Tue, 13 Feb 2024 21:58:59 +0000 https://datastorageguy.com/?p=286 Part of my 'day job' is trolling thru source code when looking for answers. My preferred mechanism, other than a recursive grep, is to use cscope

Cscope is a useful tool for searching a source code tree after you build a list of files to search

The Problem

However, in this conundrum, when I would use any of the search options within cscope the File list (or list of source files) was empty, blank, envisible... basically, I could not SEE any of the results!

Example

Recreating the issue

In the following example, I built a list of files so that I could populate cscope

# cd /export/hg/default/pstoolkit
# find PstkCore/ -type f -not -path "*__In*" -not -path "*__Out*" -not -path "*ThirdPart*" -name "*.c" -o -name "*.cpp" -o -name "*.h" -o -name "*.hpp" -o -name "*.cs*" > cscope.files

Then I read the results into cscope

# ls -al cscope.files
-rw-rw-r-- 1 bpatridge bpatridge 77196 Feb 13 12:46 cscope.files
# cscope -q -R -b -i cscope.files
# 

Now I attempt to open cscope

# cscope -d

Now I see the window:

However,

When I search for string "TimeOfDay" the search results are invisible?

I even attempted to change the colors but the results were the same

Oddly enough, when I scroll down and press enter I CAN still view one of the source files?

However when I return it is still empty.

The Solution

The solution in this case was surprising.

I trolled the internet for weeks until I finally found a nugget on old ye faithful - stackoverflow which mentioned that cscope has problems with control characters!

I noted when viewing the contents of several files there was a ^M appended to each line.

Therefore I ran dos2unix on all of the files in cscope.files

# cat cscope.files |xargs -n1 -I{}  dos2unix  {}
dos2unix: converting file PstkCore/dotnetSDK/src/SDK/Tintri.Types/Generated/SraPeerArray.cs to Unix format ...
dos2unix: converting file PstkCore/dotnetSDK/src/SDK/Tintri.Types/Generated/SraPrepareReverseReplicationResponse.cs to Unix format ...
dos2unix: converting file PstkCore/dotnetSDK/src/SDK/Tintri.Types/Generated/RecommendationSpaceOutcome.cs to Unix format ...
dos2unix: converting file PstkCore/dotnetSDK/src/SDK/Tintri.Types/Generated/RemoteCopyInfo.cs to Unix format ...
dos2unix: converting file PstkCore/dotnetSDK/src/SDK/Tintri.Types/Generated/ReplLinkStat.cs to Unix format ...
dos2unix: converting file PstkCore/dotnetSDK/src/SDK/Tintri.Types/Generated/ReplicationStat.cs to Unix format ...
dos2unix: converting file PstkCore/dotnetSDK/src/SDK/Tintri.Types/Generated/RestApi.cs to Unix format ...
dos2unix: converting file PstkCore/dotnetSDK/src/SDK/Tintri.Types/Generated/RestApiPrivilege.cs to Unix format ...
dos2unix: converting file PstkCore/dotnetSDK/src/SDK/Tintri.Types/Generated/RestoreInfo.cs to Unix format ...
dos2unix: converting file PstkCore/dotnetSDK/src/SDK/Tintri.Types/Generated/ServiceGroup.cs to Unix format ...
dos2unix: converting file PstkCore/dotnetSDK/src/SDK/Tintri.Types/Generated/ServiceGroupOperationStatus.cs to Unix format ...
dos2unix: converting file PstkCore/dotnetSDK/src/SDK/Tintri.Types/Generated/Severity.cs to Unix format ...
....

After this was complete, I was able to run cscope normally and now I can see the search results!!!


]]>
286
What every Programmer *should* know about Memory https://datastorageguy.com/2023/10/04/what-every-programmer-should-know-about-memory/ Wed, 04 Oct 2023 22:49:50 +0000 https://datastorageguy.com/?p=278 For my fellow Insomniacs out there…

If you are up scrolling your phone for things around the Google-verse to read to shut off your brain so you can possibly go to sleep.. I came across this article on LWN which provides a trough of information regarding Linux Memory Management.

The original document prints out at over 100 pages and is WAY more than I may ever digest in this lifetime.

Be sure to have a soft pillow for your head to fall down onto!!


]]>
278
Obtain the grub boot parameters from /var/log/messages https://datastorageguy.com/2023/09/20/obtain-the-grub-boot-parameters-from-var-log-messages/ Wed, 20 Sep 2023 17:41:36 +0000 https://datastorageguy.com/?p=272 There are times you may need to quickly confirm the grub boot parameters that were issued either at the console (or by default)

This information is logged to /var/log/messages when you grep with keywords "Kernel command"


# grep "Kernel command" messages
2023-09-19 2023-09-19T15:06:08.687 benvm1 NOT Kernel command line: BOOT_IMAGE=/vmlinuz-3.10.0-1160.76.1.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet, transparent_hugepage=never LANG=en_US.UTF-8
]]>
272
Data Storage Funny #1 https://datastorageguy.com/2023/09/20/data-storage-funny-1/ Wed, 20 Sep 2023 17:38:17 +0000 https://datastorageguy.com/?p=269 Let this sink in!!

]]>
269