harsh3466

joined 8 months ago
[–] [email protected] 10 points 2 days ago

I know it's a privacy focused browser, and I've used it on my iPad. It's a decent enough browser. The best feature is that on iOS it actually supports plugins like ublock.

[–] [email protected] 4 points 4 days ago

I liked it. IMO season one is worth a watch. It tells a complete story but leaves things open for season two. Sucks that it's cancelled. 🤷‍♂️

[–] [email protected] 38 points 1 week ago* (last edited 1 week ago)

The isn't snark. The answer is simply greed. The rich want to be richer. They want it all. The mentality is, "I don't care about anyone else, I want it all."

Edit: removed a redundant sentence

[–] [email protected] 14 points 1 week ago (1 children)

:shocked pikachu:

[–] [email protected] 11 points 1 week ago

🤦‍♂️

[–] [email protected] 7 points 1 week ago (1 children)

So people will get something like .25 USD?

[–] [email protected] 3 points 1 week ago (1 children)

I got about halfway through the first episode before I turned it off.

[–] [email protected] 1 points 2 weeks ago (1 children)

Ah. Yeah. I think then you'll want to look into cloudflare tunnels. I believe that should get you through the cgnt and deal with the dynamic IP ll in one go.

[–] [email protected] 5 points 3 weeks ago (4 children)

You can deal with the non-static IP by using duckdns.org

[–] [email protected] 1 points 3 weeks ago

Another copy. Would have been crazy if it was the exact copy I had.

[–] [email protected] 3 points 3 weeks ago (2 children)

I was at a used bookshop the other day and found the same Caldera Open Linux 2.2 book and cd that I used to install my first linux distro on a pc. Man that was exciting!

[–] [email protected] 10 points 1 month ago (7 children)

are you looking for a google drive replacement? or a tool to sync google drive to your linux/kde system?

 

Am I crazy in thinking that the shop I was in that has CentOS 3 running their self checkouts should have a more up to date and currently supported OS? These are brand new self checkouts (the shop has had them for about a year now, but you get my point.)

It’s a genuine question. Am I wrong in thinking that using this OS on a self checkout is a terrible idea? (FWIW this shop is an international retailer)

I have no stake in the shop or anything. I just happened to be there when they had to reboot a self checkout and I noticed the OS version as I was going by.

 

First, before this rather large infodump, I want to thank anyone that takes the time to read through this to offer any information or advice on trying to resolve this issue.

Here’s the issue I’ve been struggling with.

I keep getting this error on my server:

INFO: task txg_sync:1615 blocked for more than 241 seconds.
Tainted: P           O      5.15.0-112-generic #122-Ubuntu

Background:

I’ve got a homeserver running Ubuntu server 22.04 (no DE) with an Intel Core i7-6700K CPU @ 4.00GHz, 32GB RAM, and two ZFS pools. The OS is installed on its own 128GB SSD, and the two ZFS pools consist of a 128GB SSD in its own pool for the server’s cache, and a 4x8TB HDD RAIDZ1 pool that is my main data/server storage (much more detailed system info below).

I have a bunch of services running in Docker containers, and overall everything is great, except for when that error rears up.

The error seems random, but occurs most reliably, but not consistently, when I’m trying to write larger media files to the RAIDZ1 pool. I am aware that this an IOPS issue, but so far I have not been able to diagnose it.

Back in February, I was carrying some boxes down to the basement where the server rack is, and I accidentally kicked a stool into the server which knocked the shit out of it (it’s a tower pc that I built back in 2016 or 2017 and repurposed in 2020ish to server use). When I turned on the monitor it was in total panic mode. The screen was gibberish colors and flickering madness.

I had to force shutdown with the power button. I waited a good couple of minutes, and on reboot, everything seemed fine. Until I noticed the new txg_sync error a week or so later when I went down to add some media to the server.

After a lot of searching and reading that didn’t turn up pertinent info, I ran across a comment that said this error is almost always hardware related. Like a loose connection or a failing disk or something. With me having knocked the shit out of the server, I realized I should have opened the case up and checked it all out. I shut it down, opened it up, and found a loose connector on the motherboard. I reseated it, checked everything else (though not thoroughly enough, which we’ll get to), and rebooted hoping I had found the problem.

It seemed fine for a bit, but no luck. The error returned.

More searching with no luck, and then about a month ago, a friend he suggested I check all the SATA connectors by disconnecting each one and reconnecting to insure a good, solid connection. I had previously checked if they were seated when I opened the case, but didn’t disconnect and reconnect. While doing this, I found a SATA cable with a busted clip and thought again I had found the problem. I replaced the cable, and went about a week before the error resurfaced.

It continues to occur, as I mentioned inconsistently. Most reliably, but not always, when writing data to the RAIDZ1 pool.

I have run a thorough memtest, and there were no errors or issue with the RAM, and as far as I can tell, there are no errors/failures with the HDDs.

Below is a lot of system info, and an example of what I find in dmesg for the error.

System Info

OS & Kernel

Ubuntu 22.04.4 LTS
Linux [redacted user] 5.15.0-113-generic #123-Ubuntu SMP Mon Jun 10 08:16:17 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

CPU

Architecture:           x86_64
  CPU op-mode(s):       32-bit, 64-bit
  Address sizes:        39 bits physical, 48 bits virtual
  Byte Order:           Little Endian
CPU(s):                 8
  On-line CPU(s) list:  0-7
Vendor ID:              GenuineIntel
  Model name:           Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
    CPU family:         6
    Model:              94
    Thread(s) per core: 2
    Core(s) per socket: 4
    Socket(s):          1
    Stepping:           3
    CPU max MHz:        4200.0000
    CPU min MHz:        800.0000
    BogoMIPS:           7999.96
    Flags:              fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dno wprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d arch_capabilities
Caches (sum of all):    
  L1d: 128 KiB (4 instances)
  L1i: 128 KiB (4 instances)
  L2:  1 MiB (4 instances)
  L3:  8 MiB (1 instance)
NUMA:                   
  NUMA node(s):      1
  NUMA node0 CPU(s): 0-7
Vulnerabilities:        
  Gather data sampling: Vulnerable: No microcode
  Itlb multihit:        KVM: Mitigation: VMX unsupported
  L1tf:                 Mitigation; PTE Inversion
  Mds:                  Mitigation; Clear CPU buffers; SMT vulnerable
  Meltdown:             Mitigation; PTI
  Mmio stale data:      Mitigation; Clear CPU buffers; SMT vulnerable
  Retbleed:             Mitigation; IBRS
  Spec rstack overflow: Not affected
  Spec store bypass:    Mitigation; Speculative Store Bypass disabled via prctl and seccomp
  Spectre v1:           Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:           Mitigation; IBRS; IBPB conditional; STIBP conditional; RSB filling; PBRSB-eIBRS Not
                         affected; BHI Not affected
  Srbds:                Mitigation; Microcode
  Tsx async abort:      Mitigation; TSX disabled

RAM

Memory Device
        Array Handle: 0x004A
        Error Information Handle: Not Provided
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 8 GB
        Form Factor: DIMM
        Set: None
        Locator: DIMM_A2
        Bank Locator: BANK 1
        Type: DDR4
        Type Detail: Synchronous
        Speed: 2133 MT/s
        Manufacturer: Corsair
        Serial Number: 00000000
        Asset Tag: 9876543210
        Part Number: CMK16GX4M2A2400C16  
        Rank: 2
        Configured Memory Speed: 2133 MT/s
        Minimum Voltage: Unknown
        Maximum Voltage: Unknown
        Configured Voltage: 1.2 V
Handle 0x004D, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x004A
        Error Information Handle: Not Provided
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 8 GB
        Form Factor: DIMM
        Set: None
        Locator: DIMM_B1
        Bank Locator: BANK 2
        Type: DDR4
        Type Detail: Synchronous
        Speed: 2133 MT/s
        Manufacturer: Corsair
        Serial Number: 00000000
        Asset Tag: 9876543210
        Part Number: CMK16GX4M2A2400C16  
        Rank: 1
        Configured Memory Speed: 2133 MT/s
        Minimum Voltage: Unknown
        Maximum Voltage: Unknown
        Configured Voltage: 1.2 V
Handle 0x004E, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x004A
        Error Information Handle: Not Provided
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 8 GB
        Form Factor: DIMM
        Set: None
        Locator: DIMM_B2
        Bank Locator: BANK 3
        Type: DDR4
        Type Detail: Synchronous
        Speed: 2133 MT/s
        Manufacturer: Corsair
        Serial Number: 00000000
        Asset

Disks

NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0                       7:0    0  63.9M  1 loop /snap/core20/2264
loop1                       7:1    0  63.9M  1 loop /snap/core20/2318
loop2                       7:2    0    87M  1 loop /snap/lxd/27948
loop3                       7:3    0    87M  1 loop /snap/lxd/28373
loop4                       7:4    0  38.7M  1 loop /snap/snapd/21465
loop5                       7:5    0  38.8M  1 loop /snap/snapd/21759
sda                         8:0    0 223.6G  0 disk 
├─sda1                      8:1    0     1M  0 part 
├─sda2                      8:2    0     2G  0 part /boot
└─sda3                      8:3    0 221.6G  0 part 
  └─ubuntu--vg-ubuntu--lv 253:0    0   100G  0 lvm  /
sdb                         8:16   0 223.6G  0 disk 
├─sdb1                      8:17   0 223.6G  0 part 
└─sdb9                      8:25   0     8M  0 part 
sdc                         8:32   0   7.3T  0 disk 
├─sdc1                      8:33   0   7.3T  0 part 
└─sdc9                      8:41   0     8M  0 part 
sdd                         8:48   0   7.3T  0 disk 
├─sdd1                      8:49   0   7.3T  0 part 
└─sdd9                      8:57   0     8M  0 part 
sde                         8:64   0   7.3T  0 disk 
├─sde1                      8:65   0   7.3T  0 part 
└─sde9                      8:73   0     8M  0 part 
sdf                         8:80   0   7.3T  0 disk 
├─sdf1                      8:81   0   7.3T  0 part 
└─sdf9                      8:89   0     8M  0 part 

ZFS

version
zfs-2.1.5-1ubuntu6~22.04.4
zfs-kmod-2.1.5-1ubuntu6~22.04.3
list
NAME        SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
srvrcache   222G  13.8G   208G        -         -    17%     6%  1.00x    ONLINE  -
srvrpool   29.1T  17.5T  11.6T        -         -     1%    60%  1.00x    ONLINE  -
status
pool: srvrcache
 state: ONLINE
status: Some supported and requested features are not enabled on the pool.
        The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
        the pool may no longer be accessible by software that does not support
       the features. See zpool-features(7) for details.
  scan: scrub repaired 0B in 00:00:35 with 0 errors on Sun Jun  9 00:24:36 2024
config:

        NAME        STATE     READ WRITE CKSUM
        srvrcache   ONLINE       0     0     0
          sdb       ONLINE       0     0     0

errors: No known data errors

 pool: srvrpool
 state: ONLINE
status: Some supported and requested features are not enabled on the pool.
        The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
        the pool may no longer be accessible by software that does not support
        the features. See zpool-features(7) for details.
  scan: scrub repaired 0B in 11:41:27 with 0 errors on Sun Jun  9 12:05:31 2024
config:

        NAME        STATE     READ WRITE CKSUM
        srvrpool    ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            sdd     ONLINE       0     0     0
            sde     ONLINE       0     0     0
            sdf     ONLINE       0     0     0
            sdc     ONLINE       0     0     0

errors: No known data errors
iostat
capacity     operations     bandwidth 
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
srvrcache   13.8G   208G      0     22  48.0K   291K
  sdb       13.8G   208G      0     22  48.0K   291K
----------  -----  -----  -----  -----  -----  -----
srvrpool    17.5T  11.6T     33     59  2.14M  1.03M
  raidz1-0  17.5T  11.6T     33     59  2.14M  1.03M
    sdd         -      -      8     15   554K   275K
    sde         -      -      7     13   536K   252K
    sdf         -      -      8     15   562K   275K
    sdc         -      -      8     14   539K   252K
----------  -----  -----  -----  -----  -----  -----

PCI

00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
00:01.0 PCI bridge: Intel Corporation 6th-10th Gen Core Processor PCIe Controller (x16) (rev 07)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)
00:14.0 USB controller: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller (rev 31)
00:16.0 Communication controller: Intel Corporation 100 Series/C230 Series Chipset Family MEI Controller #1 (rev 31)
00:17.0 SATA controller: Intel Corporation Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode] (rev 31)
00:1b.0 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #17 (rev f1)
00:1c.0 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #1 (rev f1)
00:1d.0 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #9 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Z170 Chipset LPC/eSPI Controller (rev 31)
00:1f.2 Memory controller: Intel Corporation 100 Series/C230 Series Chipset Family Power Management Controller (rev 31)
00:1f.3 Audio device: Intel Corporation 100 Series/C230 Series Chipset Family HD Audio Controller (rev 31)
00:1f.4 SMBus: Intel Corporation 100 Series/C230 Series Chipset Family SMBus (rev 31)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-V (rev 31)
01:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 3GB] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP106 High Definition Audio Controller (rev a1)
03:00.0 USB controller: ASMedia Technology Inc. ASM1142 USB 3.1 Host Controller

dmesg

[321540.060243] INFO: task txg_sync:1615 blocked for more than 120 seconds.
[321540.060330]       Tainted: P           O      5.15.0-112-generic #122-Ubuntu
[321540.060408] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[321540.060495] task:txg_sync        state:D stack:    0 pid: 1615 ppid:     2 flags:0x00004000
[321540.060498] Call Trace:
[321540.060500]  <TASK>
[321540.060502]  __schedule+0x24e/0x590
[321540.060509]  schedule+0x69/0x110
[321540.060512]  schedule_timeout+0x87/0x140
[321540.060515]  ? zio_issue_async+0x12/0x20 [zfs]
[321540.060653]  ? __bpf_trace_tick_stop+0x20/0x20
[321540.060657]  io_schedule_timeout+0x51/0x80
[321540.060661]  __cv_timedwait_common+0x12c/0x170 [spl]
[321540.060669]  ? wait_woken+0x70/0x70
[321540.060672]  __cv_timedwait_io+0x19/0x20 [spl]
[321540.060679]  zio_wait+0x116/0x220 [zfs]
[321540.060799]  dsl_pool_sync+0xb6/0x400 [zfs]
[321540.060890]  ? __mod_timer+0x214/0x400
[321540.060894]  spa_sync_iterate_to_convergence+0xe0/0x1f0 [zfs]
[321540.060997]  spa_sync+0x2dc/0x5b0 [zfs]
[321540.061098]  txg_sync_thread+0x266/0x2f0 [zfs]
[321540.061206]  ? txg_dispatch_callbacks+0x100/0x100 [zfs]
[321540.061314]  thread_generic_wrapper+0x61/0x80 [spl]
[321540.061324]  ? __thread_exit+0x20/0x20 [spl]
[321540.061332]  kthread+0x127/0x150
[321540.061336]  ? set_kthread_struct+0x50/0x50
[321540.061339]  ret_from_fork+0x1f/0x30
[321540.061344]  </TASK>

Thank you again to anyone who takes the time to offer any info or advice on resolving this.

 

Most of the switching posts are from frustrated windows users making the jump. I’m already a Linux user on my server (Ubuntu for now, going Debian at some point) and a 2014 iMac for tinkering/testing (KDE Neon), and a couple of raspberry pis (raspberry pi os headless) but our main household computer is an M1 Mac mini that my wife and I both use.

Lately I’ve been super frustrated with macOS.

  • First, macOS just refuses to mount my USB 3 drives. I have a 1T seagate ssd and a 3T WD hdd (both exFat) and it just flat out refuses to see them. The same drives are visible and mount just fine on my server and the KDE iMac. On macOS, they’re invisible. They don’t auto mount, and they don’t show up in disk utility (gui or shell), which is really fucking annoying when I’m trying to move large files between machines
  • I use Cryptomator to encrypt data on macOS, and because of their whole walled garden shtick and how they continue to lock out system extensions, macfuse routinely breaks, rendering it impossible to access my data on macOS. Again, on the KDE iMac, everything just works as it should. On the Mac It’ll throw me the enable the extension warning, so I enable it. Then it tells me I have to re-boot to actually use the extension. I reboot, and it throws the enable extension warning again. Fucking infuriating.

I hadn’t already pulled the trigger on Asahi because my wife uses the m1 more than I do, and I didn’t want to break anything she does. However today was the last straw as a task that should have taken me maybe 15 minutes took two hours of fighting with macOS. After talking with her she gave me the go ahead to install Asahi. It helps that she does most everything in the browser and that the install is a dual boot setup with macOS still available.

I used to love macOS. It felt so intuitive and while it was never flawless, it mostly just got the fuck out of my way so I could do the things I wanted and needed to do. I still love a lot about Apple hardware, but fuck that shit os. I’m happy to be running Linux on all of the computers in the house.

Now I just have to learn the Fedora differences, having used Debian derivatives up until this point.

171
submitted 5 months ago* (last edited 5 months ago) by [email protected] to c/[email protected]
 

Made delicious Moroccan spiced lamb tacos in fresh naan with:

  • onions pickled in apple cider vinegar, white vinegar, lemon juice and a touch of honey
  • thinly sliced cabbage
  • fresh made tzatziki (made this morning so the flavors could marinate)
  • tomatoes roasted with garlic, onion, salt, pepper, and oregano

UPDATE: Recipes and instructions!

These are not all original recipes, but most of them are modified, so I've included the recipes as I made them, but also links to the original recipe source.

Bread

Naan (source) (Naan can be made ahead. I made mine fresh before prepping the meat)

Ingredients:

  • 1 teaspoon sugar
  • 1/2 cup warm water
  • 1/4 oz. active dry yeast (2 1/4 teaspoons)
  • 2 1/4 cups all-purpose flour
  • 1/2 cup plain yogurt (I use whole milk greek)
  • 1/2 teaspoon salt
  • 1 Tablespoon garlic powder (approximate. I didn't measure, just dumped some in)
  • 1 Tablespoon onion powder (approximate. I didn't measure, just dumped some in)
  • 1 Tablespoon chili powder (approximate. I didn't measure, just dumped some in)
  • 1 -3 tablespoons extra virgin olive oil
  • butter for the skillet
  • salt for cooking the naan

Instructions:

  • Heat the water to around 105-110F (approx 40-43C)
  • Add the yeast and sugar to the water and whisk until blended. Let sit for appox 10 minutes to bloom the yeast. It should be foamy
  • Put the flour on a large countertop/work surface and add the spices. Mix together with your hands, and when well mixed, make a well in the middle of the flour mixture.
  • Add the yogurt, yeast mixture, and 1 Tablespoon olive oil to the well
  • Knead the mixture together. If the mixture feels a little dry, add more olive oil as needed, a little at a time until it doesn't feel dry.
  • Knead the dough for 10-15 minutes until it is smooth and shiny
  • Add a Tablespoon of olive oil to a large bowl and coat the sides and bottom of the bowl with the oil
  • Place the dough in the bowl and cover with a damp towel.
  • Place the bowl in a warm spot to rise for a minimum of one hour until doubled in size (I like to let mine rise for 2+ hours)
  • Once risen, turn the dough out onto a cutting board and divide into 8 equal pieces
  • Lightly flour your workspace and your rolling pin
  • Pre heat your skillet and add a teaspoon of butter. (I use a cast iron but any larger skillet will do, I also cook the naan as I'm rolling out the other pieces. If this is too much, roll out all the dough first, and then cook it)
  • Roll out the pieces of dough into around an 8in/20cm diameter. It will be irregularly shaped, which is fine. Flip and turn the dough frequently as you roll it out and dust with additional flour as needed to keep it from sticking to the rolling pin or your work surface
  • When cooking, lightly salt the first side of the dough and place it in the pan, and then sprinkle salt on the other side.
  • Cook for 2-3 minutes per side. The dough should bubble up nicely and brown nicely as it cooks.
  • Stack on a plate for serving.

Garnishes

Note: Highly recommended to make these ahead to allow the flavors to meld. I made all the garnishes in the morning

Pickled Onions (This is part of the Moroccan Spiced Lamb recipe below but I went rogue with this one)

Ingredients:

  • 1/2 red onion thinly sliced
  • 1-2 T white vinegar
  • 1-2 T apple cider vinegar
  • juice of one lemon
  • a touch of honey

Instructions:

  • Mix everything together in a bowl. If making day of, cover and let sit at room temp to marinate. If making day(s) ahead, cover and refrigerate until needed.

Tzatziki Sauce (source)

Ingredients:

  • 1 English cucumber
  • Salt
  • 5 to 10 garlic cloves minced
  • 1 tsp white vinegar
  • 1 tbsp Extra Virgin Olive Oil
  • 2 cups plain Greek yogurt
  • 1/2 - 1 cup dill (my wife LOVES dill, so adjust this to taste. We don't measure, she just adds handfuls of dill)
  • Fresh cracked black pepper to taste

Instructions:

  • In a large enough bowl for all the ingredients, add the vinegar, olive oil and garlic and whisk together
  • Grate the cucumbers on a box grater or with your food processor
  • Using a cheese cloth, in batches, squeeze the water out of the cucumber. There will be a lot of water. They don't need to be perfectly dry, but squeeze out a bunch of the water. Put the squeezed cucumber in the bowl
  • Add the yogurt, dill, and salt to taste (I add around 1 T salt, but I like salt), and mix everything together with a spatula. Cover and refrigerate to allows the flavors to marinate

Roasted Tomatoes (this is an original recipe)

Note: We put them on the tacos cold/room temp

Ingredients:

  • Tomatoes of choice (we sometimes use grape tomatoes, roma, whatever tomatoes we happen to have)
  • Extra virgin olive oil
  • Salt
  • Pepper
  • Dried Parsley
  • Onion powder
  • Garlic powder

Instructions:

Note: None of this is measured, so add everything to taste. If you need a starting point, if using 1 pint grape tomatoes, use approximately 1t garlic powder, 4T parsley, and 1T of the rest, and 1T olive oil to coat. Adjust as necessary depending on the volume of tomatoes you are roasting.

  • Pre heat oven to 400F/205C
  • Line a baking sheet with parchment paper
  • Cut up tomatoes. If using grape or similar, cut in half. If using roma or larger, slice around .25in/2.5cm thick
  • Place tomatoes in large bowl/tupperware that has a lid
  • Drizzle with olive oil for coating.
  • Add in all spices
  • Cover bowl and toss to thoroughly coat tomatoes with oil and spices
  • Spread tomatoes out on baking sheet, use more baking sheets as needed so that the tomatoes aren't layered on top of each other
  • Cook for approximately 50 minutes, but keep an eye on them so they don't burn. I like my tomatoes with some caramelization, so I tend to like to go an hour or longer depending on the tomatoes. (but I'm always watching them so they don't burn)

Sliced Cabbage

Ingredients:

  • small head of cabbage

Instructions:

  • thinly slice

Meat

Moroccan Spiced Lamb (source)

Ingredients:

  • 1 lb ground lamb
  • 1 tsp. sea salt
  • ½ tsp. garlic powder
  • ½ tsp. ground cumin
  • ¼ tsp. ground ginger
  • ¼ tsp. ground cinnamon
  • freshly cracked pepper
  • 1/2 jalapeno pepper de seeded

Instructions:

  • Char the jalapeno over an open flame (I do it over a gas burner). Once it reaches your desired level of char, dice finely and set aside in a small bowl
  • Add the spices to the bowl with the jalapeno
  • Brown the lamb in a skillet
  • Once browned, remove from heat and remove some of the grease (I sop it up with paper towels) so that it's not swimming in the fat
  • Return to heat on low and add the spice and jalapeno mixture to the meat and mix well. Turn off heat and set aside.

Assemble

Instructions:

  • Spread some tzatziki on the naan
  • Add the lamb
  • Add the onions
  • Add the cabbage
  • Top with tomatoes
  • Enjoy!
2
Chicken Gyros (ps.wbcld.com)
submitted 6 months ago* (last edited 6 months ago) by [email protected] to c/[email protected]
 

Made chicken gyros today, made the chicken, tzatziki sauce, and the pita bread. It all tasted fantastic.

 
 

Made pineapple coconut curry over roasted cauliflower and a fresh batch of naan. Delicious.

 

Not as much time to tinker this week, but I still had some fun and learned some things!

How to run a memory test using memtest86+

My error message is back, which means my nuke and pave approach didn’t solve the problem. So, yay to having a record of the error message?

Here’s the error:

echo 0 > / proc/sys/kernel/hung_task_timeout_secs" disables this message.
INFO: task txg_sync: 3557 blocked for more than 241 seconds.
Tainted: P 0 5.15.0-94-generic #104-Ubuntu

I decided to do a little more searching and found that the txg_sync is a zfs task. I know zfs uses a lot of RAM as part of it’s processing. As a result/starting point, I decided to do a memory test to see if I messed up any of my RAM modules when I knocked the shit out of my server.

Running a memory test was really easy. I downloaded the latest memtest86+ ISO, used balena etcher to flash it to a usb stick, booted from that stick, and let the test run.

I let it run for two full passes and got no errors.

So as of right now I know that the error is being caused by zfs writes/activity, but I don’t know why the error is happening, other than that I fucked something up when I knocked the shit out of my server.

How to set up a wireguard tunnel

This also has been on my list of things to figure out for quite awhile, and, turns out, with the wg-easy project, it is exactly as easy as the name implies. I found out about wg-easy through the Awesome Open Source YouTube channel. I’ve learned a lot from the guy that runs that channel, so I always check there when I want to learn more about something. Timing was fortuitous, since he had just dropped his video on wg-easy.

I’ve got wg-easy running on my vps, and I’m planning to connect my playground server to it so I can ssh in and play around during my breaks at work.

Grav CMS is pretty nice

I’ve kind of idly been looking for an alternative to Wordpress. I found out about Grav while bouncing around Linux YouTube looking for things to learn about/try. I’ve already tried 11ty and Hugo ssgs and neither worked for me.

Grav on the other hand was easy to get up and running, is easy to theme, (Theming was the problem I kept running into for both 11ty and Hugo), can be managed through cli or webui, and can have content added through the webui, or, more importantly for me, from markdown files on the server.

Whether or not I’ll actually use it to deploy a site remains to be seen. I’ll continue to tinker with it while I decide if I want to migrate my wordpress site over to it.

75
submitted 8 months ago* (last edited 8 months ago) by [email protected] to c/[email protected]
 

Edit: I've made an account here on lemmy.ml as I routinely can't comment or post from my account on lemmy.world.

Bit of a week! As usual, had a lot of fun tinkering. Here’s my takeaways from this past week(ish).

I finally learned how to set up a cron job with elevated privileges

This is something I've had on my , "I should really get this figured out" list for about two years now, but instead have been inconsistently typing my rsync commands (Since I've also been too lazy to set up the aliases for these commands).

I spent a couple of days rebuilding my server from the OS up (for reasons which I will explain momentarily), and since I'm up on a fresh OS with all my containers and services up and running, I figured it was time I figure out this cron job thing.

The approach I took was to write a simple bash script for my backup. The script is four lines. Three of which are sudo rsync ..., and the last of which is a curl -d ... command.

The rsync commands are to incrementally back up my server data, cache, and docker volumes.

The curl command triggers a notification through my ntfy instance, (link is to ntfy, not to my instance), to let me know the backups have successfully completed.

In order for that to run properly, I also had to learn....

How to update sudoers privileges

After reading about crontab and privileges, I know I could have just edited /etc/crontab and run my script as root, but what would be the fun in that when I could also learn about changing privileges through sudoers! So I learned how to modify sudo priviliges by creating a new file in sudoers.d with the command:

sudo visudo -f /etc/sudoers.d/name-of-my-sudoers-file

And why that and not just editing /etc/sudoers directly with nano or vim or emacs? That was my first question when I saw that command and thought, "Oh, shit, I'm going to have to brush up on my vi/m."

Turns out, if you just rando edit sudoers (or add a file to /etc/sudoers.d/) with any old editor, you can fuck up the syntax, and if you fuck up the syntax, you can fuck up your ability to use sudo, and then you can't do anything requiring sudo on your machine without going through tremendous headache to fix it.

However, if you use sudo visudo ..., you get syntax verification to prevent you from breaking sudo.

And, on Ubuntu server, visudo uses nano by default, which meant I didn't have to worry about vim just yet (vim is on my roadmap of things to learn)

(Also, you can change the default editor visudo uses, but I don't remember the command because I won't be changing it until I get a grip on vim and can make a decision about which editor I want to use.)

With all that being said, I created a file in /etc/sudoers.d and added a line to allow my backup script to run with elevated privileges without requiring a password with this syntax:

username ALL=(root) NOPASSWD: /path/to/my/script

Good documentation/notes will save you like good backups will save you

This isn’t something that’s new to me, or to linux (Arch wiki ftw) but it’s something that 100% made rebuilding my server from the OS up a pretty worry free breeze.

So why did I rebuild my server again a little over a month after rebuilding it from the OS up? Turns out when you accidentally kick a stool while carrying a heavy box and that stool knocks the fuck out of your server, your OS can get fucked up.

This happened a few weeks ago, and boy was I panicked when I first kicked that stool into the server. After putting down the boxes I turned on the monitor and the screen was freaking out. It looked like a scrambled Max Headroom. I held the power button to force a shutdown, and after rebooting the server everything came back up and I thought, ”Holy shit, I dodged a bullet!”

(Bonus lesson, I learned to not leave the stool in front of the server rack!)

But, all was not well. My server data and cache are on zfs pools, and every time I tried to bulk add some of the shows or movies I prepared to the data pool, I would get this procsys kernel panic error. I had repeatedly been checking my zpool status, and everything was good there. So I was furiously searching trying to figure out what the error meant, and I kept finding folks with the same or similar errors who talked about checking logs, but whenever I checked logs I couldn’t find anything to indicate what was actually going on.

Finally, after a few days additional searching, I ran across a comment on a thread that said this particular error (I neglected to save the error, I wish I had) was usually a hardware related issue, like a loose connector, and I thought, ”Holy shit, that makes perfect sense after knocking the shit of my server!”

So I shut it down, opened it up, and sure enough there was a loose cable on the motherboard. I reseated it, checked the rest, rebooted, and over the course of the next week, it seemed all was well.

But I kept getting these weird errors. Not actual error messages, no more kernel panics, and data wrote to the zpool just fine. It was little things not working as expected. Commands that typically ran very speedily (like ls) were lagging, opening a file in nano took multiple seconds instead of being near instant, stuff like that.

I decided to go for a nuke and pave approach, rebuilding from the OS up again, which is where the documentation comes in. Since I started messing about with self hosting 2-3 years ago, I’ve kept meticulous notes on everything I have done and learned so that if I had to re-do it, I could open up Joplin, search for whatever I needed, and proceed. This has saved my ass multiple times over the years as I tinker, break shit, and fix it using my notes.

So yeah, in addition to having a good backup system, you should also keep good documentation for yourself.

edit: removed extra 4 from post title

view more: next ›